JSONArray JSONObject都来自com.alibaba.fastjson
为了处理JSON格式的字符串,形如
[{"id":"c7b09b8e-7f62-11e8-940f-7cd30adaaf52","name":"01栋","code":"001","parentId":0,"checked":0,"level":1},
{"id":"cc0e8850-7f62-11e8-940f-7cd30adaaf52","name":"01单元","code":"01","parentId":"c7b09b8e-7f62-11e8-940f-7cd30adaaf52","checked":0,"level":2},
{"id":"d3f350da-7f62-11e8-940f-7cd30adaaf52","name":"001-01-0101","code":"0101","parentId":"cc0e8850-7f62-11e8-940f-7cd30adaaf52","checked":1,"level":3}]
采用JSONArray.parseArray(str),将字符串转化为JSON对象的列表
JSONArray jsonArray = JSONArray.parseArray((String) grid.get("gridRange"));
遍历JSONArray
for (int i = 0; i < jsonArray.size(); i++) {
...
}
取到JSONArray中的JSONObject对象,i为遍历中的下标
JSONObject job = jsonArray.getJSONObject(i);
取JSONObject对象中某个属性对应的值
int level = (int)job.get("level");
改变JSONObject中某个属性的值
job.put("name",floor + "层");
对JSONArray的操作可看作List,JSONObject则为Map
观察源码发现:JSONArray 实现了 List<Object>,JSONObject 实现了 Map<String, Object>,因此foreach、stream等对它们也同样适用;另外,它们都继承自JSON对象,这个对象提供了String->Object的若干方法。