2013-03-21 61 views
2
val json = JsObject(Seq(
     "type" -> toJson("filter"), 
     "params" -> toJson(fP.parseToJson()) 
    )).toString() 

fP.parseToJson()会生成一个json字符串,用于代码中的其他位置。播放JSON:如何使用字符串作为正确的json

我得到这个:

{ 
    type: "filter", 
    params: "{"searchId":"","client":"ios","lat":40.743894995835525,"lon":-74.00080404533901,"radius":20.0}" 
} 

我想:

{ 
    type: "filter", 
    params: { 
    "searchId":"", 
    "client":"ios", 
    "lat":40.743894995835525, 
    "lon":-74.00080404533901, 
    "radius":20.0 
    } 
} 

归根结底的问题是:有没有办法把一个字符串,它是已经JSON,并利用它作为一个JSON对象在JSON响应?

+0

这两个JSON片段之间的区别是什么,除了第二个是漂亮打印? – 2013-03-21 18:24:45

+0

@HotLicks - 行情。在第一种情况下,'params'是一个包含JSON数据的字符串。第二,这是一个数据结构。 – 2013-03-21 18:35:01

回答

2

Json.parse显然会照顾它。

val json = JsObject(Seq(
    "type" -> toJson("filter"), 
    "params" -> Json.parse(fP.parseToJson()) 
)).toString()