无法使用json4s正确提取json

时间:2019-05-13 10:29:10

标签: json scala json4s

我有一个json:

{"key1":["12345"],"key2":[{"key3":"some value"}]}

我需要提取key3的值

我在做compact(render(json \ "key2" \ "key3"))

我得到一个带方括号[“ some value”]的字符串。 请让我知道如何仅将值作为字符串获取。

3 个答案:

答案 0 :(得分:2)

使用JArray上的apply方法可以做到这一点:

import org.json4s._
import org.json4s.native.JsonMethods._

val json = parse("""{"key1":["12345"],"key2":[{"key3":"some value"}]}""")
(json \ "key2" )(0) \ "key3"
// res6: JValue = JString("some value")

答案 1 :(得分:1)

尝试\\,它会按名称返回所有匹配的字段。例如

import org.json4s._
import org.json4s.native.JsonMethods._

object Hello extends App {
  val json = parse("""{"key1":["12345"],"key2":[{"key3":"some value"}]}""")
  println(json \\ "key3")
}

应输出JString(some value)

答案 2 :(得分:0)

import org.json4s.jackson.JsonMethods

val x =
  """{"key1":["12345"],"key2":[{"key3":"some value"}]}
    | """
val key3 =  JsonMethods.parse(x) \ "key2" \ "key3"
val list = (key3.values)
println(list)

将打印 列表(一些值)