gpt4 book ai didi

scala - 如何将 json4s JValue 转换为 Jackson JsonNode?

转载 作者:行者123 更新时间:2023-12-02 06:34:17 26 4
gpt4 key购买 nike

如果我使用 json4s(使用 Jackson 绑定(bind)):

scala> import org.json4s._
scala> import org.json4s.jackson.JsonMethods._
scala> parse(""" { "numbers" : [1, 2, 3, 4] } """)
res0: org.json4s.JsonAST.JValue =
JObject(List((numbers,JArray(List(JInt(1), JInt(2), JInt(3), JInt(4))))))

如何将给定的 org.json4s.JsonAST.JValue 转换为 com.fasterxml.jackson.databind.JsonNode

为什么我要这样做:我想使用优秀的 json-schema-validator 来验证 JValue 针对 JSON 模式Java 库,它将 JsonNode 作为参数。

我正在寻找某种相当于 Play Framework's handling of JsValue <> JsonNode interop 的东西.

最佳答案

从Json4s 3.2.11-SNAPSHOT开始有两种方法可以在JValue和JsonNode之间转换:

  • asJsonNode(jv: JValue): JsonNode 将 JValue 转换为 JsonNode
  • fromJsonNode(jn: JsonNode): JValue 将 JsonNode 转换为 JValue

这是一个如何使用它的例子:

import org.json4s._
import org.json4s.jackson.JsonMethods._

val jv = parse(""" { "numbers" : [1, 2, 3, 4] } """)

val jn = asJsonNode(jv)
println(jn)
// {"numbers":[1,2,3,4]}

val jv2 = fromJsonNode(jn)
println(jv2)
// JObject(List((numbers,JArray(List(JInt(1), JInt(2), JInt(3), JInt(4))))))

关于scala - 如何将 json4s JValue 转换为 Jackson JsonNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23878495/

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