小编Ant*_*tov的帖子

将 Jackson 转换为 Play Json

我正在尝试将带有 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])
Run Code Online (Sandbox Code Playgroud)

但有例外:

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"])
...
Run Code Online (Sandbox Code Playgroud)

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

json scala jackson playframework

5
推荐指数
1
解决办法
1504
查看次数

忽略 ScalaTest 匹配中的 case 类字段

假设我有几个字段成员的案例类:

case class User(name: String, ..., createdAt: LocalDateTime)
Run Code Online (Sandbox Code Playgroud)

如何在不考虑createdAt字段的情况下检查相等性?

有没有比以下更好的方法:

val expected = User("username", stubDate)
actual shouldBe expected.copy(createdAt = actual.createdAt)
Run Code Online (Sandbox Code Playgroud)

scala matcher case-class scalatest

4
推荐指数
1
解决办法
789
查看次数

标签 统计

scala ×2

case-class ×1

jackson ×1

json ×1

matcher ×1

playframework ×1

scalatest ×1