2016-07-30 91 views
0

我有以下JSON:变换原来的Json使用播放框架在斯卡拉

{"id": 1, 
"url":[ 
    {"format":""}, 
    {"creator":""}, 
    {"value":"http://..."} 
] 
} 

我怎样才能将其转换"url": "http://..."

我该怎么做?我尝试了以下,但它似乎并没有工作。

(json \ "value").as[JsString].value

+2

你的问题还不清楚,因为你期望输出中有一个url,而你的输入json包含一个url数组。那么你真的想在这里实现什么?单个(url,urlValue)对(在这种情况下,你的json是无效的)或者一个List对(在这种情况下你的期望是无效的)? –

回答

0

因为“网址”有一个数组值,则需要建立索引适当地得到您所需要的价值,所以在你的情况下,它会是这样的:

scala> val url = (json \ "url")(2).get 
url: play.api.libs.json.JsValue = {"value":"http://..."} 

scala> (url \ "value").as[String] 
res22: String = http://... 

我也如果您对处理JSON的更多功能方法感到满意,建议查看Argonaut。它远胜于Play提供的JSON设施。