2014-10-07 84 views
1

我有一個帶有一些任意JSON的字符串。我想用我的JSON字符串構造一個JsObject作爲JSON對象值,而不是字符串值。例如,假設我的任意字符串是無聊的{}我想要{"key": {}}而不是{"key": "{}"}將JSON字符串序列化爲Scala/Play中的JSON

下面是我試圖做到這一點。

val myString = "{}" 
Json.obj(
    "key" -> Json.parse(myString) 
) 

我得到的錯誤是

type mismatch; found : 
    scala.collection.mutable.Buffer[scala.collection.immutable.Map[String,java.io.Serializable]] 
    required: play.api.libs.json.Json.JsValueWrapper 

我不知道該怎麼做了一番。

回答

2

「{}」是一個空對象。

因此,要獲得{"key": {}}

Json.obj("key" -> Json.obj()) 

更新

也許你有一箇舊版本播放的。這適用於Play 2.3.x:

scala> import play.api.libs.json._ 
scala> Json.obj("foo" -> Json.parse("{}")) 
res2: play.api.libs.json.JsObject = {"foo":{}} 
+0

不,對不起。這只是我的任意字符串的一個例子。 – 2014-10-07 14:14:14

+0

對不起。那時我不明白你的問題。 – 2014-10-08 00:01:36

+0

呵呵。因此,在描述我的問題時,我簡化了一個我認爲不重要的細節,但是是。因爲一些未知的原因,我實際上在做'''Json.obj(「foo」 - > Map(「bar」 - > Json.parse(「{}」)))'''當我應該做'''Json .obj(「foo」 - > Json.obj(「bar」 - > Json.parse(「{}」)))'''。你的回答幫助我重新評估我的假設,所以感謝你的幫助! – 2014-10-08 03:50:57

相關問題