将Jackson转换为Play Json

5

我想将带有Jackson注解的类转换为Play的JsObject。据我所知,应该通过将其转换为JsonNode,然后再转换为JsValue / JsObject来完成。

val mapper = new ObjectMapper()
mapper.registerModule(DefaultScalaModule)

val jsNode: JsonNode = mapper.valueToTree(status)
val jsValue: JsObject = mapper.treeToValue(jsNode, classOf[JsObject])

但是遇到异常:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "anticipatedClosing" (class play.api.libs.json.JsObject), not marked as ignorable (2 known properties: "fields", "value"])
 at [Source: N/A; line: -1, column: -1] (through reference chain: play.api.libs.json.JsObject["anticipatedClosing"])
...

做错了什么? 目前我正在将Jackson -> String -> Play Json进行转换,但它看起来很丑。


请问您能否将需要转换的类包含进来? - Mon Calamari
1个回答

1
将PlayJsonModule添加到您的objectMapper。
val mapper = new ObjectMapper().registerModule(PlayJsonModule)
val jsValue: JsObject = mapper.treeToValue(jsNode, classOf[JsObject])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接