gpt4 book ai didi

json - 反序列化没有名称的json

转载 作者:行者123 更新时间:2023-12-04 19:40:42 25 4
gpt4 key购买 nike

我是 Scala na json4s 来使用 json。为了反序列化,我调用了 org.json4s.native.JsonMethods.parse 和 ExtractableJsonAstNode.extract 方法。这是 json 文件的一部分:

     "": {
"atribute1": "v1",
"instanceId": "i",
},

它包含没有名称的属性。案例类中的字段名称应该是什么才能成功反序列化属性?

最佳答案

我认为您无法将此类 json 解析为案例类。除非你为它做一个自定义反序列化器,然后你可以自己决定。

import org.json4s.{JValue, CustomSerializer, DefaultFormats}
import org.json4s.native.JsonMethods
import org.json4s.JsonDSL._
import org.json4s._

case class Outer(value: Inner, other: String)
case class Inner(atribute1: String, instanceId: String)

object Formats extends DefaultFormats {
val outerSerializer = new CustomSerializer[Outer](implicit format ⇒ (
{ case j: JValue ⇒ Outer(
(j \ "").extract[Inner],
(j \ "other").extract[String]
)},
{ case a: Outer ⇒
("" → Extraction.decompose(a.value)) ~
("other" → a.other)
})
)

override val customSerializers = List(outerSerializer)
}

implicit val formats = Formats

val json = """
{
"": {
"atribute1": "v1",
"instanceId": "i",
},
"other": "1"
}
"""

JsonMethods.parse(json).extract[Outer]

关于json - 反序列化没有名称的json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28235978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com