scala遍历jsonarray
时间: 2023-09-07 08:17:32 浏览: 181
可以使用Scala自带的JSON库,如下所示:
```
import scala.util.parsing.json._
val jsonString = """[
| { "name": "John", "age": 30 },
| { "name": "Mary", "age": 25 },
| { "name": "Bob", "age": 40 }
|]""".stripMargin
val json = JSON.parseFull(jsonString)
json match {
case Some(array: List[Map[String, Any]]) => array.foreach(person => println(person("name"), person("age")))
case _ => println("Invalid JSON")
}
```
这里使用了`JSON.parseFull`将JSON字符串解析成Scala中的对象。由于JSON数组是一个列表,因此可以使用`List[Map[String, Any]]`来表示。然后使用`foreach`遍历列表中的每个元素,并输出每个人的姓名和年龄。
相关问题
scala遍历json对象
在Scala中,可以使用第三方库如`play-json`或`circe`来遍历JSON对象。以下是使用`play-json`库的示例代码:
首先,确保在项目的构建文件中添加了`play-json`库的依赖。
```scala
libraryDependencies += "com.typesafe.play" %% "play-json" % "2.9.2"
```
然后,导入相关的类和方法:
```scala
import play.api.libs.json._
```
假设我们有以下JSON对象:
```scala
val json: JsValue = Json.parse("""
{
"name": "John",
"age": 30,
"email": "john@example.com",
"address": {
"street": "123 Main St",
"city": "New York"
},
"hobbies": ["reading", "painting", "traveling"]
}
""")
```
现在,我们可以使用`JsValue`的方法来遍历JSON对象。以下是一些常见的遍历操作:
1. 获取JSON对象中的特定字段值:
```scala
val name: String = (json \ "name").as[String]
val age: Int = (json \ "age").as[Int]
```
2. 遍历JSON对象中的所有字段:
```scala
json.as[JsObject].fields.foreach { case (key, value) =>
println(s"Field: $key, Value: $value")
}
```
3. 遍历嵌套的JSON对象:
```scala
val address: JsValue = json \ "address"
val street: String = (address \ "street").as[String]
val city: String = (address \ "city").as[String]
```
4. 遍历JSON数组:
```scala
val hobbies: Seq[String] = (json \ "hobbies").as[Seq[String]]
hobbies.foreach(println)
```
这些是遍历JSON对象的基本操作。根据具体的需求,你可以进一步处理JSON对象中的字段和值。
JSONArray在scala中的遍历输出
在 Scala 中,可以使用 Java 中的 JSON 库 org.json 来操作 JSON 数据。其中 JSONArray 类代表了 JSON 中的数组。
遍历并输出 JSONArray 中的元素可以使用 for 循环或者 foreach 方法。示例代码如下:
```scala
import org.json.JSONArray
val jsonArrayStr = """["apple", "banana", "orange"]"""
val jsonArray = new JSONArray(jsonArrayStr)
// 使用 for 循环遍历
for (i <- 0 until jsonArray.length()) {
val element = jsonArray.get(i)
println(element)
}
// 使用 foreach 方法遍历
jsonArray.forEach(element => println(element))
```
上述代码中,我们首先将 JSON 字符串转换为 JSONArray 对象。然后,使用 for 循环或者 foreach 方法遍历 JSONArray 中的元素并输出。
注意,需要将 JSONArray 中的元素使用 get 方法获取,因为 JSONArray 中的元素类型是 Object。
阅读全文