2

json4s を使用している場合 (Jackson バインディングを使用):

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ですか?

これを行う理由: s を引数として受け取るJValue優れたjson-schema-validator Java ライブラリを使用して、JSON スキーマに対して sを検証したいと考えています。JsonNode

Play フレームワークのJsValue<> JsonNodeinteropの処理に相当するものを探しています。

4

1 に答える 1

9

Json4s 3.2.11-SNAPSHOT 以降、JValue と JsonNode の間で変換できるメソッドが 2 つあります。

  • asJsonNode(jv: JValue): JsonNodeJValue を JsonNode に変換します
  • fromJsonNode(jn: JsonNode): JValueJsonNode を 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))))))
于 2014-05-30T01:23:05.210 に答える