[alibaba/fastjson]【JsonPath解析】对Json中数组嵌套数组的情况,返回丢数据

2025-10-31 383 views
3

后台接收到了一个复杂的json对象,解析使用的标准json path如下: $.data.list[*].followSeries[0].name 转换为 FastJson支持的json path为$.data.list.followSeries[0].name 正常按理解应该提取所有list属性下followSeries数组第一个元素的所有name,返回应该是个List, 现在的返回的只有一个元素。 我尝试过$.data.list[0:].followSeries[0].name等情况都不行。 麻烦问一下,fastjson能支持这种情况么?json示例请见附件。非常感谢。

data.zip

回答

1

不太懂你是要前端取值还是后端取值,后端参考:

JSONArray list = json.getJSONObject("data").getJSONArray("list");
JSONArray followSeries = list.getJSONObject(i).getJSONArray("followSeries");//i是循环的下标
3

followSeries 我想用FASTJSON自带的JSONPath取值。示例代码如下:

@Test public void testComplicateJsonPath(){ String jsonPath = "$.data.list.followSeries[0].name"; System.out.println(JSONPath.read(Constants.SAMPLE_JSON, jsonPath)); }

3

没办法了,你只能把JSONPath.read(json, "$.data.list.followSeries.name")的结果进行二次处理了。