com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper Scala Examples
The following examples show how to use com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper.
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: CometObjectMapper.scala From comet-data-pipeline with Apache License 2.0 | 5 votes |
package com.ebiznext.comet.utils import com.fasterxml.jackson.annotation.JsonIgnoreType import com.fasterxml.jackson.core.JsonFactory import com.fasterxml.jackson.databind.module.SimpleModule import com.fasterxml.jackson.databind.{InjectableValues, ObjectMapper} import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper object CometObjectMapper { // https://github.com/FasterXML/jackson-databind/issues/962 @JsonIgnoreType private class MixinsForObjectMapper } class CometObjectMapper( jf: JsonFactory = null, injectables: scala.collection.immutable.Seq[(Class[_], AnyRef)] = Nil ) extends ObjectMapper(jf) with ScalaObjectMapper { this.registerModule(DefaultScalaModule) this.registerModule(CometJacksonModule) this.registerModule( new SimpleModule() .setMixInAnnotation(classOf[ObjectMapper], classOf[CometObjectMapper.MixinsForObjectMapper]) ) if (injectables.nonEmpty) { val iv = new InjectableValues.Std() injectables.foreach { case (klass, value) => iv.addValue(klass, value) } this.setInjectableValues(iv: InjectableValues) } }
Example 2
Source File: JacksonSupport.scala From stream-reactor with Apache License 2.0 | 5 votes |
package com.landoop.streamreactor.hive.it import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.core.JsonParser import com.fasterxml.jackson.databind.{DeserializationFeature, ObjectMapper} import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper object JacksonSupport { val mapper: ObjectMapper with ScalaObjectMapper = new ObjectMapper with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL) mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false) mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true) mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true) mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true) }
Example 3
Source File: JacksonSupport.scala From stream-reactor with Apache License 2.0 | 5 votes |
package com.landoop.streamreactor.connect.hive import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.core.JsonParser import com.fasterxml.jackson.databind.{DeserializationFeature, ObjectMapper} import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper object JacksonSupport { val mapper: ObjectMapper with ScalaObjectMapper = new ObjectMapper with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL) mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false) mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true) mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true) mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true) }
Example 4
Source File: JacksonSupport.scala From stream-reactor with Apache License 2.0 | 5 votes |
package com.landoop.streamreactor.hive.it import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.core.JsonParser import com.fasterxml.jackson.databind.{DeserializationFeature, ObjectMapper} import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper object JacksonSupport { val mapper: ObjectMapper with ScalaObjectMapper = new ObjectMapper with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL) mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false) mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true) mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true) mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true) }
Example 5
Source File: JacksonSupport.scala From stream-reactor with Apache License 2.0 | 5 votes |
package com.landoop.streamreactor.connect.hive import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.core.JsonParser import com.fasterxml.jackson.databind.{DeserializationFeature, ObjectMapper} import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper object JacksonSupport { val mapper: ObjectMapper with ScalaObjectMapper = new ObjectMapper with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL) mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false) mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true) mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true) mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true) }
Example 6
Source File: JsonLifter.scala From diffy with GNU Affero General Public License v3.0 | 5 votes |
package ai.diffy.lifter import com.fasterxml.jackson.core.{JsonGenerator, JsonToken} import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.databind.ser.std.StdSerializer import com.fasterxml.jackson.databind.{JsonNode, ObjectMapper, SerializerProvider} import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper import com.twitter.util.Try import scala.collection.JavaConversions._ import scala.language.postfixOps import scala.reflect.runtime.universe.runtimeMirror import scala.tools.reflect.ToolBox import scala.util.control.NoStackTrace object JsonLifter { @JsonSerialize(using = classOf[JsonNullSerializer]) object JsonNull object JsonParseError extends Exception with NoStackTrace val toolbox = runtimeMirror(getClass.getClassLoader).mkToolBox() val Mapper = new ObjectMapper with ScalaObjectMapper Mapper.registerModule(DefaultScalaModule) def apply(obj: Any): JsonNode = Mapper.valueToTree(obj) def lift(node: JsonNode): Any = node.asToken match { case JsonToken.START_ARRAY => node.elements.toSeq.map { element => lift(element) } case JsonToken.START_OBJECT => { val fields = node.fieldNames.toSet if (fields.exists{ field => Try(toolbox.parse(s"object ${field}123")).isThrow}) { node.fields map {field => (field.getKey -> lift(field.getValue))} toMap } else { FieldMap( node.fields map {field => (field.getKey -> lift(field.getValue))} toMap ) } } case JsonToken.VALUE_FALSE => false case JsonToken.VALUE_NULL => JsonNull case JsonToken.VALUE_NUMBER_FLOAT => node.asDouble case JsonToken.VALUE_NUMBER_INT => node.asLong case JsonToken.VALUE_TRUE => true case JsonToken.VALUE_STRING => node.textValue case _ => throw JsonParseError } def decode(json: String): JsonNode = Mapper.readTree(json) def encode(item: Any): String = Mapper.writer.writeValueAsString(item) } class JsonNullSerializer(clazz: Class[Any]) extends StdSerializer[Any](clazz) { def this() { this(null) } override def serialize(t: Any, jsonGenerator: JsonGenerator, serializerProvider: SerializerProvider): Unit = { jsonGenerator.writeNull() } }
Example 7
Source File: Main.scala From ProxyCrawler with Apache License 2.0 | 5 votes |
package org.crowdcrawler.proxycrawler import java.nio.charset.StandardCharsets import java.nio.file.{Paths, Files} import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper import com.typesafe.scalalogging.Logger import org.crowdcrawler.proxycrawler.checker.ProxyChecker import org.slf4j.LoggerFactory object Main { private val LOGGER = Logger(LoggerFactory.getLogger(Main.getClass)) val OBJECT_MAPPER = new ObjectMapper() with ScalaObjectMapper OBJECT_MAPPER.registerModule(DefaultScalaModule) def main(args: Array[String]): Unit = { val usage = "Usage: \n\tcrawl [pluginClassName]* OutputFile\n" + "\tcheck proxies.json valid_proxies.json\n" + "\tfilter valid_proxies.json <HTTP|HTTPS|SOCKS> output.json\n" + "For example:\n" + "\t1. Crawl all supported websites and save proxies to proxies.json\n" + "\t\tcrawl proxies.json\n" + "\t2. Crawl www.cnproxy.com and save proxies to proxies.json:\n" + "\t\tcrawl CnProxyComPlugin proxies.json\n" + "\t3. Check the speed of proxies.\n" + "\t\tcheck proxies.json valid_proxies.json\n" + "\t4. Filter proxies by schema\n" + "\t\tfilter valid_proxies.json HTTP http.json\n" if (args.length < 2) { println(usage) return } val start = System.currentTimeMillis if (args(0) == "crawl") { val classNames = if (args.length == 2) { Array("CnProxyComPlugin", "CoolProxyNetPlugin", "GatherproxyComPlugin", "IpcnOrgPlugin", "ProxyListOrg", "SocksProxyNet", "USProxyOrgPlugin") } else { args.slice(1, args.length-1) } val crawler = ProxyCrawler(classNames: _*) val proxies = crawler.crawl() LOGGER.info("Writing to disk, " + proxies.size + " proxies") val json = OBJECT_MAPPER.writerWithDefaultPrettyPrinter.writeValueAsString(proxies) Files.write(Paths.get(args.last), json.getBytes(StandardCharsets.UTF_8)) } else if (args(0) == "check") { val json = io.Source.fromFile(args(1), "utf-8").mkString val list = OBJECT_MAPPER.readValue[List[ProxyInfo]](json) // sort by speed desc val validProxies = ProxyChecker.check(list).filter(_.speed > 0) .sortWith((p1, p2) => p1.speed > p2.speed) LOGGER.info("Writing to disk, " + validProxies.size + " valid proxies out of " + list.size + " proxies") val newJson = OBJECT_MAPPER.writerWithDefaultPrettyPrinter .writeValueAsString(validProxies) Files.write(Paths.get(args(2)), newJson.getBytes(StandardCharsets.UTF_8)) } else if (args(0) == "filter") { val json = io.Source.fromFile(args(1), "utf-8").mkString val list = OBJECT_MAPPER.readValue[List[ProxyInfo]](json) val filtered = if (args(2) == "SOCKS") { list.filter(p => p.schema == "SOCKS" | p.schema == "SOCKS4" || p.schema == "SOCKS5") } else { list.filter(p => p.schema == args(2)) } val newJson = OBJECT_MAPPER.writerWithDefaultPrettyPrinter .writeValueAsString(filtered) Files.write(Paths.get(args(3)), newJson.getBytes(StandardCharsets.UTF_8)) } else { println(usage) return } val end = System.currentTimeMillis LOGGER.info("Time elapsed " + (end - start) / 1000 + " seconds.") } }
Example 8
Source File: RedisClient.scala From asura with MIT License | 5 votes |
package asura.core.redis import com.fasterxml.jackson.databind.{DeserializationFeature, ObjectMapper} import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper import com.typesafe.scalalogging.Logger import org.redisson.Redisson import org.redisson.api.{RFuture, RedissonClient} import org.redisson.codec.JsonJacksonCodec import org.redisson.config.Config import scala.compat.java8.FutureConverters.{toScala => javaFutureToScalaFuture} import scala.concurrent.Future object RedisClient { val logger = Logger("RedisClient") var redisson: RedissonClient = null private val mapper: ObjectMapper with ScalaObjectMapper = new ObjectMapper() with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false) def init(servers: Seq[String] = Nil): Unit = { val config = new Config() config.setCodec(new JsonJacksonCodec(mapper)) if (null == servers || servers.isEmpty) { config.useSingleServer().setAddress("redis://127.0.0.1:6379") } else if (servers.length == 1) { config.useSingleServer().setAddress(servers(0)) } else { config.useClusterServers().setScanInterval(3000).addNodeAddress(servers: _*) } logger.info(s"init redis client with config: ${config.toJSON}") redisson = Redisson.create(config) } def shutdown(): Unit = { if (null != redisson) { logger.info("shutdown redis client") redisson.shutdown() } } implicit def toScala[T](rf: RFuture[T]): Future[T] = { javaFutureToScalaFuture(rf) } }
Example 9
Source File: JsonUtils.scala From asura with MIT License | 5 votes |
package asura.common.util import java.io.InputStream import java.text.SimpleDateFormat import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.core.JsonParser import com.fasterxml.jackson.core.`type`.TypeReference import com.fasterxml.jackson.databind.{DeserializationFeature, ObjectMapper} import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper object JsonUtils extends JsonUtils { val mapper: ObjectMapper with ScalaObjectMapper = new ObjectMapper() with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")) mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL) mapper.configure(DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true) mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false) mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true) mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true) mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true) } trait JsonUtils { val mapper: ObjectMapper def stringify(obj: AnyRef): String = { mapper.writeValueAsString(obj) } def parse[T <: AnyRef](content: String, c: Class[T]): T = { mapper.readValue(content, c) } def parse[T <: AnyRef](input: InputStream, c: Class[T]): T = { mapper.readValue(input, c) } def parse[T <: AnyRef](content: String, typeReference: TypeReference[T]): T = { mapper.readValue(content, typeReference) } }
Example 10
Source File: JacksonSupport.scala From pulsar4s with Apache License 2.0 | 5 votes |
package com.sksamuel.pulsar4s.jackson import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.core.JsonParser import com.fasterxml.jackson.databind.module.SimpleModule import com.fasterxml.jackson.databind.ser.std.NumberSerializers import com.fasterxml.jackson.databind.{DeserializationFeature, ObjectMapper} import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper object JacksonSupport { val mapper: ObjectMapper with ScalaObjectMapper = new ObjectMapper with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL) mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false) mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true) mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true) mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true) val module = new SimpleModule module.addSerializer(new NumberSerializers.DoubleSerializer(classOf[Double])) }
Example 11
Source File: HttpOrderBook.scala From matcher with MIT License | 5 votes |
package com.wavesplatform.dex.api.http.entities import com.fasterxml.jackson.core.{JsonGenerator, JsonParser} import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.databind.deser.std.StdDeserializer import com.fasterxml.jackson.databind.module.SimpleModule import com.fasterxml.jackson.databind.ser.std.StdSerializer import com.fasterxml.jackson.databind.{DeserializationContext, JsonNode, ObjectMapper, SerializerProvider} import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper import com.wavesplatform.dex.domain.asset.Asset.{IssuedAsset, Waves} import com.wavesplatform.dex.domain.asset.{Asset, AssetPair} import com.wavesplatform.dex.domain.bytes.ByteStr import com.wavesplatform.dex.domain.model.Denormalization import com.wavesplatform.dex.model.LevelAgg @JsonSerialize(using = classOf[HttpOrderBook.Serializer]) case class HttpOrderBook(timestamp: Long, pair: AssetPair, bids: Seq[LevelAgg], asks: Seq[LevelAgg], assetPairDecimals: Option[(Int, Int)] = None) object HttpOrderBook { private val coreTypeSerializers = new SimpleModule() coreTypeSerializers.addDeserializer(classOf[AssetPair], new AssetPairDeserializer) private val mapper = new ObjectMapper() with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) mapper.registerModule(coreTypeSerializers) private def serialize(value: Any): String = mapper.writeValueAsString(value) private class AssetPairDeserializer extends StdDeserializer[AssetPair](classOf[AssetPair]) { override def deserialize(p: JsonParser, ctxt: DeserializationContext): AssetPair = { val node = p.getCodec.readTree[JsonNode](p) def readAssetId(fieldName: String): Asset = { val x = node.get(fieldName).asText(Asset.WavesName) if (x == Asset.WavesName) Waves else IssuedAsset(ByteStr.decodeBase58(x).get) } AssetPair(readAssetId("amountAsset"), readAssetId("priceAsset")) } } private def formatValue(value: BigDecimal, decimals: Int): String = new java.text.DecimalFormat(s"0.${"0" * decimals}").format(value) private def denormalizeAndSerializeSide(side: Seq[LevelAgg], amountAssetDecimals: Int, priceAssetDecimals: Int, jg: JsonGenerator): Unit = { side.foreach { levelAgg => val denormalizedPrice = Denormalization.denormalizePrice(levelAgg.price, amountAssetDecimals, priceAssetDecimals) val denormalizedAmount = Denormalization.denormalizeAmountAndFee(levelAgg.amount, amountAssetDecimals) jg.writeStartArray(2) jg.writeString(formatValue(denormalizedPrice, priceAssetDecimals)) jg.writeString(formatValue(denormalizedAmount, amountAssetDecimals)) jg.writeEndArray() } } def toJson(x: HttpOrderBook): String = serialize(x) class Serializer extends StdSerializer[HttpOrderBook](classOf[HttpOrderBook]) { override def serialize(x: HttpOrderBook, j: JsonGenerator, serializerProvider: SerializerProvider): Unit = { j.writeStartObject() j.writeNumberField("timestamp", x.timestamp) x.assetPairDecimals.fold { j.writeFieldName("pair") j.writeStartObject() j.writeStringField("amountAsset", x.pair.amountAssetStr) j.writeStringField("priceAsset", x.pair.priceAssetStr) j.writeEndObject() j.writeArrayFieldStart("bids") x.bids.foreach(j.writeObject) j.writeEndArray() j.writeArrayFieldStart("asks") x.asks.foreach(j.writeObject) j.writeEndArray() } { case (amountAssetDecimals, priceAssetDecimals) => j.writeArrayFieldStart("bids") denormalizeAndSerializeSide(x.bids, amountAssetDecimals, priceAssetDecimals, j) j.writeEndArray() j.writeArrayFieldStart("asks") denormalizeAndSerializeSide(x.asks, amountAssetDecimals, priceAssetDecimals, j) j.writeEndArray() } j.writeEndObject() } } }
Example 12
Source File: JsonUtils.scala From delta with Apache License 2.0 | 5 votes |
package org.apache.spark.sql.delta.util import com.fasterxml.jackson.annotation.JsonInclude.Include import com.fasterxml.jackson.databind.{DeserializationFeature, ObjectMapper} import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper val mapper = new ObjectMapper with ScalaObjectMapper mapper.setSerializationInclusion(Include.NON_ABSENT) mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) mapper.registerModule(DefaultScalaModule) def toJson[T: Manifest](obj: T): String = { mapper.writeValueAsString(obj) } def toPrettyJson[T: Manifest](obj: T): String = { mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj) } def fromJson[T: Manifest](json: String): T = { mapper.readValue[T](json) } }
Example 13
Source File: JsonUtil.scala From ionroller with MIT License | 5 votes |
package ionroller import java.text.SimpleDateFormat import com.fasterxml.jackson.databind.{DeserializationFeature, ObjectMapper} import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper import play.api.libs.json.Json object JsonUtil { object Implicits { implicit class Unmarshallable(unMarshallMe: String) { def toMap: Map[String, Any] = JsonUtil.toMap(unMarshallMe) def toMapOf[V]()(implicit m: Manifest[V]): Map[String, V] = JsonUtil.toMap[V](unMarshallMe) def fromJson[T]()(implicit m: Manifest[T]): T = JsonUtil.fromJson[T](unMarshallMe) } implicit class Marshallable[T](marshallMe: T) { def toJson: String = JsonUtil.toJson(marshallMe) def toJsonValue = Json.parse(JsonUtil.toJson(marshallMe)) } } val mapper = new ObjectMapper() with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS")) def toJson(value: Map[Symbol, Any]): String = { toJson(value map { case (k, v) => k.name -> v }) } def toJson(value: Any): String = { mapper.writeValueAsString(value) } def toMap[V](json: String)(implicit m: Manifest[V]) = fromJson[Map[String, V]](json) def fromJson[T](json: String)(implicit m: Manifest[T]): T = { mapper.readValue[T](json) } }
Example 14
Source File: OrderedDocFreq.scala From gemini with GNU General Public License v3.0 | 5 votes |
package tech.sourced.gemini import java.io.{File, PrintWriter} import scala.io.Source import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper case class OrderedDocFreq(docs: Int, tokens: IndexedSeq[String], df: collection.Map[String, Int]) { def saveToJson(filename: String): Unit = { val mapper = new ObjectMapper() with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) val out = new PrintWriter(filename) mapper.writeValue(out, Map( "docs" -> docs, "tokens" -> tokens, "df" -> df )) out.close() } } object OrderedDocFreq { def fromJson(file: File): OrderedDocFreq = { val docFreqMap = parseFile[Map[String, Any]](file) val docs = docFreqMap.get("docs") match { case Some(v) => v.asInstanceOf[Int] case None => throw new RuntimeException(s"Can not parse key 'docs' in docFreq:${file.getAbsolutePath}") } val df = docFreqMap.get("df") match { case Some(v) => v.asInstanceOf[Map[String, Int]] case None => throw new RuntimeException(s"Can not parse key 'df' in docFreq:${file.getAbsolutePath}") } val tokens = docFreqMap.get("tokens") match { case Some(v) => v.asInstanceOf[List[String]].toArray case None => throw new RuntimeException(s"Can not parse key 'tokens' in docFreq:${file.getAbsolutePath}") } OrderedDocFreq(docs, tokens, df) } def parseFile[T: Manifest](file: File): T = { val json = Source.fromFile(file) val mapper = new ObjectMapper with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) mapper.readValue[T](json.reader) } }
Example 15
Source File: HATEOASContinuation.scala From regressr with Apache License 2.0 | 5 votes |
package org.ebayopensource.regression.example import java.net.URI import org.ebayopensource.regression.internal.components.continuation.Continuation import org.ebayopensource.regression.internal.http.{HTTPRequest, HTTPResponse} import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper import scala.util.Try endpoint/shopping/items/item[0-9]")) { val map = getMap(resp.body.get) Seq(HTTPRequest(new URI(map.get("seller").get.asInstanceOf[String]), request.headers, request.method, None)) } else { Seq() } } def getMap(json: String) : Map[String, Object] = { val mapper = new ObjectMapper() with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) mapper.readValue[Map[String, Object]](json) } }
Example 16
Source File: LinkedJsonGraphDeserializer.scala From rug with GNU General Public License v3.0 | 5 votes |
package com.atomist.tree.marshal import com.atomist.graph.GraphNode import com.atomist.rug.ts.Cardinality import com.atomist.tree.{SimpleTerminalTreeNode, TreeNode} import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper import com.typesafe.scalalogging.LazyLogging def fromJson(json: String): GraphNode = { val l = toListOfMaps(json) nodeify(l) } private def toListOfMaps(json: String): List[Map[String, Object]] = { mapper.readValue(json, classOf[List[Map[String, Object]]]) } private def nodeify(l: List[Map[String, Object]]): GraphNode = { // Pass 1: Get all nodes individually and put them in a map var idToNode: Map[String, LinkableContainerTreeNode] = Map() val nodes: Seq[LinkableContainerTreeNode] = for { m <- l if !m.contains(StartNodeId) } yield { val nodeType: String = m.get(Type) match { case Some(l: Seq[_]) => l.last.toString case None => throw new IllegalArgumentException(s"Type is required") case _ => ??? } val nodeTags: Set[String] = m.get(Type) match { case Some(l: Seq[_]) => l.map(_.toString).toSet case None => throw new IllegalArgumentException(s"Type is required") case _ => ??? } val nodeName = nodeType val simpleFields = for { k <- m.keys if !SpecialProperties.contains(k) } yield { val nodeValue = m.get(k) match { case Some(s: String) => s case Some(ns) => ns.toString case None => null } SimpleTerminalTreeNode(k, nodeValue) } val ctn = new LinkableContainerTreeNode(nodeName, nodeTags + TreeNode.Dynamic, simpleFields.toSeq) val nodeId: String = requiredStringEntry(m, NodeId) idToNode += (nodeId -> ctn) ctn } // Create the linkages for { m <- l if m.contains(StartNodeId) } { val startNodeId: String = requiredStringEntry(m, StartNodeId) val endNodeId: String = requiredStringEntry(m, EndNodeId) val cardinality: Cardinality = Cardinality(defaultedStringEntry(m, CardinalityStr, Cardinality.One2One)) val link: String = requiredStringEntry(m, Type) logger.debug(s"Creating link from $startNodeId to $endNodeId") idToNode.get(startNodeId) match { case Some(parent) => parent.link( idToNode.getOrElse(endNodeId, throw new IllegalArgumentException(s"Cannot link to end node $endNodeId: not found")), link, cardinality) case None => throw new IllegalArgumentException(s"Cannot link to start node $startNodeId: not found") } } if (nodes.nonEmpty) nodes.head else new EmptyContainerGraphNode } private def requiredStringEntry(m: Map[String,Any], key: String): String = m.get(key) match { case None => throw new IllegalArgumentException(s"Property [$key] was required, but not found in map with keys [${m.keySet.mkString(",")}]") case Some(s: String) => s case Some(x) => x.toString } private def defaultedStringEntry(m: Map[String,Any], key: String, default: String): String = m.get(key) match { case None => default case Some(s: String) => s case Some(x) => x.toString } }
Example 17
Source File: YamlProjectOperationInfoParser.scala From rug with GNU General Public License v3.0 | 5 votes |
package com.atomist.project.common.yaml import java.util.regex.{Pattern, PatternSyntaxException} import com.atomist.param._ import com.atomist.project.common.template.{InvalidTemplateException, TemplateBasedProjectOperationInfo} import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.dataformat.yaml.YAMLFactory import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper import org.apache.commons.lang3.builder.ReflectionToStringBuilder import scala.util.{Failure, Success, Try} object YamlProjectOperationInfoParser { private val mapper = new ObjectMapper(new YAMLFactory()) with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) @throws[InvalidYamlDescriptorException] def parse(yaml: String): TemplateBasedProjectOperationInfo = { if (yaml == null || "".equals(yaml)) throw new InvalidYamlDescriptorException("YAML content required in template metadata file") Try(mapper.readValue(yaml, classOf[BoundProjectOperationInfo])) match { case s: Success[BoundProjectOperationInfo] => val badPatterns = s.value.parameters.flatMap(p => patternError(p)) if (badPatterns.nonEmpty) throw new InvalidYamlDescriptorException(s"Bad regexp patterns: ${badPatterns.mkString(",")}") s.value case f: Failure[BoundProjectOperationInfo] => throw new InvalidYamlDescriptorException(s"Failed to parse YAML [$yaml]: ${f.exception.getMessage}", f.exception) } } private def patternError(p: Parameter): Option[String] = { try { Pattern.compile(p.getPattern) None } catch { case pse: PatternSyntaxException => Some(s"${p.getName}: Bad regular expression pattern: ${pse.getMessage}") } } } private class BoundProjectOperationInfo extends TemplateBasedProjectOperationInfo { @JsonProperty("name") var name: String = _ @JsonProperty("description") var description: String = _ @JsonProperty("template_name") var templateName: String = _ @JsonProperty("type") var _templateType: String = _ override def templateType: Option[String] = if (_templateType == null || "".equals(_templateType)) None else Some(_templateType) @JsonProperty("parameters") private var _params: Seq[Parameter] = Nil @JsonProperty("tags") private var _tags: Seq[TagHolder] = Nil override def parameters: Seq[Parameter] = _params override def tags: Seq[Tag] = _tags.map(tw => tw.toTag) override def toString = ReflectionToStringBuilder.toString(this) } private class TagHolder { @JsonProperty var name: String = _ @JsonProperty var description: String = _ def toTag = Tag(name, description) } class InvalidYamlDescriptorException(msg: String, ex: Throwable = null) extends InvalidTemplateException(msg, ex)
Example 18
Source File: JsonSink.scala From eel-sdk with Apache License 2.0 | 5 votes |
package io.eels.component.json import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper import io.eels.schema.StructType import io.eels.{Row, Sink, SinkWriter} import org.apache.hadoop.fs.{FileSystem, Path} case class JsonSink(path: Path)(implicit fs: FileSystem) extends Sink { override def open(schema: StructType): SinkWriter = new SinkWriter { private val lock = new AnyRef() private val out = fs.create(path) val mapper = new ObjectMapper with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) override def write(row: Row) { val map = schema.fieldNames.zip(row.values).toMap val json = mapper.writeValueAsString(map) lock.synchronized { out.writeBytes(json) out.writeBytes("\n") } } override def close() { out.close() } } }
Example 19
Source File: JacksonSupport.scala From eel-sdk with Apache License 2.0 | 5 votes |
package io.eels.util import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.core.JsonParser import com.fasterxml.jackson.databind.{DeserializationFeature, ObjectMapper} import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper object JacksonSupport { val mapper: ObjectMapper with ScalaObjectMapper = new ObjectMapper with ScalaObjectMapper mapper.registerModule(DefaultScalaModule) mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL) mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false) mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true) mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true) mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true) }
Example 20
Source File: JacksonJsonMapper.scala From web3scala with Apache License 2.0 | 5 votes |
package org.web3scala.json import com.fasterxml.jackson.databind.{DeserializationFeature, ObjectMapper} import com.fasterxml.jackson.module.scala.DefaultScalaModule import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper class JacksonJsonMapper extends JsonMapper { override def writeAsBytes(value: AnyRef): Array[Byte] = { JacksonJsonMapper.mapper.writeValueAsBytes(value) } } object JacksonJsonMapper { private val mapperInstance = new ObjectMapper with ScalaObjectMapper mapperInstance.registerModule(DefaultScalaModule) mapperInstance.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) def mapper: ObjectMapper with ScalaObjectMapper = mapperInstance }