Scala中JSON数组的.get(0)、.get(1)方法含义与返回值解析
Scala JSON数组get方法含义及示例代码解析
.get(0)、.get(1)的含义
Scala生态常用JSON库(如json4s、fastjson Scala版等)的JSONArray类下标从0开始计数,.get(index)作用是根据下标取出数组对应位置的元素:
.get(0)代表取JSON数组的第一个元素.get(1)代表取JSON数组的第二个元素
如果传入的下标超过数组实际长度,通常会抛出数组越界异常。
示例代码变量解析
首先假设原board变量对应的JSON结构如下(和代码里的类型转换逻辑匹配,否则会抛出转换异常):
[ ["张明", true], "2024年上半年项目验收看板" ]
各变量的含义和对应输出如下:
val boardArray = board.asInstanceOf[JSONArray]
- 含义:将
board强制转换为JSONArray类型 - 输出:
[["张明",true],"2024年上半年项目验收看板"]
val nameAndResult = boardArray.get(0).asInstanceOf[JSONArray]
- 含义:取
boardArray的第一个元素,再强制转换为JSONArray类型 - 输出:
["张明", true]
val boardAsString = boardArray.get(1).asInstanceOf[String]
- 含义:取
boardArray的第二个元素,强制转换为字符串类型 - 输出:
"2024年上半年项目验收看板"
val name = nameAndResult.get(0).asInstanceOf[String]
- 含义:取
nameAndResult数组的第一个元素,强制转换为字符串类型 - 输出:
"张明"
val result = nameAndResult.get(1).asInstanceOf[Boolean]
- 含义:取
nameAndResult数组的第二个元素,强制转换为布尔类型 - 输出:
true
注意:代码中直接用
asInstanceOf做强制类型转换属于不安全写法,如果实际JSON结构和预期不符会直接抛出异常,生产环境建议使用带类型校验的安全取值API。
内容的提问来源于stack exchange,提问作者minimal life
相关产品推荐
相关产品推荐

