我们如何将Json4s.Jvalue对象转换为框架JsValue。
import org.json4s.native.JsonMethods._
val jsonString = """
{
...
"firstName": "John",
"lastName": "Smith",
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": 10021
},
"phoneNumbers": [
{ "type": "home", "number": "212 555-1234" },
{ "type": "fax", "number": "646 555-4567" }
],
...
}"""
val json=parse(jsonString) //Jvalue
做了一些Diff&使用Json4s lib合并我们如何将Jvalue转换为播放Jsvalue?
答案 0 :(得分:0)
如果我们在范围
中带来以下implicit conversionimplicit def json4sToPlayJson(json4sVal: JValue): JsValue =
Json.parse(compact(render(json4sVal)))
然后,例如,如果某个方法foo
需要播放JsValue
def foo(json: JsValue) = { ... }
但是它被赋予JValue
,编译器会自动调用json4sToPlayJson
方法来转换值:
val someJson4sValue = ...
foo(someJson4sValue) // becomes foo(json4sToPlayJson(someJson4sValue))
打破我们的Json.parse(compact(render(json4sVal)))
作文:
compact(render(json4sVal))
接受json4s JValue
并返回原始字符串Json.parse
接受此字符串并返回播放JsValue