如何用Play Framework JSON库提取无键JSON数组指定元素
使用Play Framework JSON库解析JSON数组获取指定元素
Play Framework的JSON库支持直接对JSON数组进行索引访问,步骤如下:
- 先将JSON字符串解析为
JsValue对象 - 通过模式匹配判断是否为
JsArray,再通过索引(从0开始)获取目标元素 - 校验元素类型为
JsString后提取具体值
代码示例:
import play.api.libs.json._ // 待解析的JSON字符串 val rawJson = """[2, "19223201", "BootNotification", {"reason": "PowerUp", "chargingStation": {"model": "SingleSocketCharger", "vendorName": "VendorX"}}]""" // 解析JSON val jsonValue = Json.parse(rawJson) // 提取第三个元素(索引为2) val targetValue = jsonValue match { case JsArray(elements) if elements.length >= 3 => elements(2) match { case JsString(content) => Some(content) case _ => None // 处理非字符串类型的情况 } case _ => None // 处理非数组或元素数量不足的情况 } // 输出结果 targetValue.foreach(println) // 控制台会打印 "BootNotification"
说明:
JsArray内部维护了一个元素序列,直接通过索引即可定位元素,无需依赖键路径- 加入模式匹配的类型校验,能避免因JSON结构异常导致的运行时错误
内容的提问来源于stack exchange,提问作者joesan
相关产品推荐
相关产品推荐

