【发布时间】:2017-06-16 13:34:33
【问题描述】:
我有两个案例类。主要的Request 包含两张地图。
第一个映射具有键和值的字符串。
第二个映射有一个字符串键和值,它是第二个案例类的实例,KVMapList。
case class Request (var parameters:MutableMap[String, String] = MutableMap[String, String](), var deps:MutableMap[String, KVMapList] = MutableMap[String, KVMapList]())
case class KVMapList(kvMap:MutableMap[String, String], list:ListBuffer[MutableMap[String, String]])
要求是将Request 转换为 JSON 表示。
以下代码正在尝试执行此操作:
import com.fasterxml.jackson.annotation.PropertyAccessor
import com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility
import com.fasterxml.jackson.databind.ObjectMapper
def test(req:Request):String {
val mapper = new ObjectMapper() with ScalaObjectMapper
mapper.setVisibility(PropertyAccessor.ALL, Visibility.ANY)
var jsonInString: String = null
try {
jsonInString = mapper.writeValueAsString(request)
}
catch {
=case e: IOException => {
e.printStackTrace
}
jsonString
}
但是这不起作用。即使填充了 Request 类,输出也是:
{"parameters":{"underlying":{"some-value":""},"empty":false,"traversableAgain":true},"deps":{"sizeMapDefined":false,"empty":false,"traversableAgain":true}}
将 JSON 对象映射器与相应的 Java 类一起使用很简单,但还没有让它在 Scala 中工作。非常感谢任何帮助。
【问题讨论】:
标签: scala