簡體   English   中英

轉換json4s.Jvalue對象以播放框架JsValue

[英]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)))組成我們有:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM