相关疑难解决方法(0)

使用circe将Scala无编码为JSON值

假设我有以下需要使用circe序列化为JSON对象的case类:

@JsonCodec
case class A(a1: String, a2: Option[String])

@JsonCodec
case class B(b1: Option[A], b2: Option[A], b3: Int)
Run Code Online (Sandbox Code Playgroud)

现在我需要编码val b = B(None, Some(A("a", Some("aa")), 5)为JSON但我希望能够控制它是否输出为

{
  "b1": null,
  "b2": {
          "a1": "a",
          "a2": "aa"
        },
  "b3": 5
}
Run Code Online (Sandbox Code Playgroud)

要么

{
  "b2": {
          "a1": "a",
          "a2": "aa"
        },
  "b3": 5
}
Run Code Online (Sandbox Code Playgroud)

使用Printer's dropNullKeysconfig,例如,b.asJson.noSpaces.copy(dropNullKeys = true)将导致None从输出中省略s,而将其设置为falseNones 编码为null(也参见此问题).但是如何在每个字段的基础上控制此设置?

json scala circe

8
推荐指数
1
解决办法
3164
查看次数

标签 统计

circe ×1

json ×1

scala ×1