如何将复杂的json字符串拆分,或者转换成map,求一个测试通过的方法

字符串格式如下,
[{"FirstIndexId":"901","SecondIndexId":"长春","SecondIndexName":"2G基站","IndexArriveValue":""},{"FirstIndexId":"901","SecondIndexId":"长春","SecondIndexName":"2G基站","IndexArriveValue":""}]

前台通过ajax JSON.stringify得到的字符串

String格式。

首先使用for循环获得每一个json然后使用map函数获取对应键值对

引用第三方json解析包,层层解析;
gson、fastjson、jackson等
解析后格式有JSONObject,JSONArray两种,分别对应键值对和数组。

调用其parseObject、parseArray方法

或者定义javabean和上面的结构一一对应,调用其parse方法

调用主体有JSON、JSONArray、JSONObject

List> listObjectFir = (List>) JSONArray.parse(strArr);

strArr就是你的json字符串

JSON.parse(str)转换为数组对象,之后for循环遍历,先怎么操作怎么操作

我想强调一下,这个是String格式。

String msg="[{"FirstIndexId":"901","SecondIndexId":"长春","SecondIndexName":"2G基站","IndexArriveValue":""},{"FirstIndexId":"901","SecondIndexId":"长春","SecondIndexName":"2G基站","IndexArriveValue":""}]";
JSONArray resultJsonArray = JSONArray.fromObject(msg);
for (int i = 0; i < resultJsonArray.size(); i++) {
JSONObject row = (JSONObject)resultJsonArray.get(i);
String FirstIndexId = (String)row.get("FirstIndexId");
}

public void changeToMap(){
List> mapList = new ArrayList>();
String str = "[{\"FirstIndexId\":\"901\",\"SecondIndexId\":\"长春\",\"SecondIndexName\":\"2G基站\",\"IndexArriveValue\":\"\"},{\"FirstIndexId\":\"901\",\"SecondIndexId\":\"长春\",\"SecondIndexName\":\"2G基站\",\"IndexArriveValue\":\"\"}]";
JSONArray json = JSONArray.parseArray(str);
if(json!=null&&json.size()>0){
for(int i=0;i Map map = new HashMap();
map = (Map)json.get(i);
mapList.add(map);
}
}
System.out.println(mapList.toString());
}

fastjson可以的

https://blog.csdn.net/qq_17025903/article/details/80096763