[英]How can I convert between play.api.libs.json.JsValue and org.json4s.JValue
[英]convert a json4s.Jvalue object to play framework JsValue
我們如何轉換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
在使用Json4s lib做一些Diff&merge之后,如何轉換Jvalue來播放Jsvalue?
如果我們將以下隱式轉換引入范圍
implicit def json4sToPlayJson(json4sVal: JValue): JsValue =
Json.parse(compact(render(json4sVal)))
那么,例如,如果某個方法foo
期望Play的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
接受此字符串並返回Play JsValue
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.