com.fasterxml.jackson.databind.node.ArrayNode Scala Examples
The following examples show how to use com.fasterxml.jackson.databind.node.ArrayNode.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: LoggedUser.scala From sparta with Apache License 2.0 | 5 votes |
package com.stratio.sparta.serving.core.models.dto import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.node.ArrayNode import scala.collection.JavaConverters._ import scala.util.Try object LoggedUser{ implicit def jsonToDto(stringJson: String): Option[LoggedUser] = { if (stringJson.trim.isEmpty) None else { implicit val json = new ObjectMapper().readTree(stringJson) Some(LoggedUser(getValue(LoggedUserConstant.infoIdTag), getValue(LoggedUserConstant.infoNameTag), getValue(LoggedUserConstant.infoMailTag, Some(LoggedUserConstant.dummyMail)), getValue(LoggedUserConstant.infoGroupIDTag), getArrayValues(LoggedUserConstant.infoGroupsTag), getArrayValues(LoggedUserConstant.infoRolesTag))) } } private def getValue(tag: String, defaultElse: Option[String]= None)(implicit json: JsonNode) : String = { Option(json.findValue(tag)) match { case Some(jsonValue) => defaultElse match{ case Some(value) => Try(jsonValue.asText()).getOrElse(value) case None => Try(jsonValue.asText()).get } case None => defaultElse match { case Some(value) => value case None => "" } } } private def getArrayValues(tag:String)(implicit jsonNode: JsonNode): Seq[String] = { Option(jsonNode.findValue(tag)) match { case Some(roles: ArrayNode) => roles.asScala.map(x => x.asText()).toSeq case None => Seq.empty[String] } } } case class LoggedUser(id: String, name: String, email: String, gid: String, groups:Seq[String], roles: Seq[String]){ def isAuthorized(securityEnabled: Boolean, allowedRoles: Seq[String] = LoggedUserConstant.allowedRoles): Boolean = { if(securityEnabled){ roles.intersect(allowedRoles).nonEmpty } else true } }
Example 2
Source File: Partition.scala From comet-data-pipeline with Apache License 2.0 | 5 votes |
package com.ebiznext.comet.schema.model import com.fasterxml.jackson.core.JsonParser import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.node.ArrayNode import com.fasterxml.jackson.databind.{DeserializationContext, JsonDeserializer, JsonNode} @JsonDeserialize(using = classOf[PartitionDeserializer]) case class Partition( sampling: Option[Double], attributes: Option[List[String]] ) { def getAttributes(): List[String] = attributes.getOrElse(Nil) def getSampling() = sampling.getOrElse(0.0) } class PartitionDeserializer extends JsonDeserializer[Partition] { override def deserialize(jp: JsonParser, ctx: DeserializationContext): Partition = { val node: JsonNode = jp.getCodec().readTree[JsonNode](jp) deserialize(node) } def deserialize(node: JsonNode): Partition = { def isNull(field: String): Boolean = node.get(field) == null || node.get(field).isNull val sampling = if (isNull("sampling")) 0.0 else node.get("sampling").asDouble() import scala.collection.JavaConverters._ val attributes = if (isNull("attributes")) None else Some( node .get("attributes") .asInstanceOf[ArrayNode] .elements .asScala .toList .map(_.asText()) ) Partition(Some(sampling), attributes) } }