2016-09-22 40 views
0

我有一个JSON字符串,如何循环JSValue从JSON解析字符串

val name : String = "["Client_2","tClient_1","Client_NB"]" 

我已经转换JSON字符串到JSValue如下使用播放JSON的

val json: JsValue = Json.parse(cells) 

输出:["IotClient_NB_2","IotClient_NB_1","IotClient_NB"]

我需要迭代上面的JSON字符串并将字符串的每个值输出。

+0

你说的'采取串的每个值out'是什么意思? –

回答

1

最简单的方法json.as[List[String]](抛出异常,如果json不是StringJsArray

例如

import play.api.libs.json.{JsValue, Json} 

val name : String = """["Client_2","tClient_1","Client_NB"]""" 
val json: JsValue = Json.parse(name) 
val list = json.as[List[String]] 

import play.api.libs.json.{JsValue, Json} 

scala> name: String = ["Client_2","tClient_1","Client_NB"] 

scala> json: play.api.libs.json.JsValue = ["Client_2","tClient_1","Client_NB"] 

scala> list: List[String] = List(Client_2, tClient_1, Client_NB) 
+0

@ andrey.ladniy感谢您的回答。我正在获取下面的编译[errorError:(65,12)在类文件'DefaultReads.class'中遇到的对java.time的错误符号引用。 无法访问包java中的术语时间。当前类路径可能缺少java.time的定义,或者DefaultReads.class可能是针对与当前类路径中找到的版本不兼容的版本编译的。 json.as [List [String]]。foreach(println)] – Gopi

+0

错过或无效导入(来自java不是scala包)。示例在控制台中编译良好。 –

+0

我建议在你的答案中加入所有必要的'import ...'语句。你的答案的读者会感谢你。 –