附上原创作者的原文
https://blog.youkuaiyun.com/sinat_31057219/article/details/71518123
在开发报表分析时,涉及到两表联查,以及框架d限制下,借助blog记录关于json的主要使用方法
Action层从request域接收到的是string,内容如下——
[{"name":"reportStatus","type":"other-query","value":"1;2"},{"name":"org_city_id","type":"other-query","value":"2;3;4"},{"name":"year","type":"year-to-year-query","value":{"startYear":"2018","endYear":"2018"}}]
有方括号,要先转化为JSONArray
JSONArray array = JSON.parseArray(searchParam);
Iterator<Object> iterator = array.iterator();
while(iterator.hasNext()){
JSONObject obj = (JSONObject) iterator.next();
String name = (String) obj.get("name");
if(StringUtils.isNotBlank(name) && name.equals("year")){
//如果是年份参数的话
startYear = obj.getString("year");
}else if(StringUtils.isNotBlank(name) && name.equals("org_city_id")){
//所属地区
String citys = obj.getString("org_city_id");
arrCity= citys.split(";");
}else if(StringUtils.isNotBlank(name) && name.equals("reportStatus")){
//上报状态
String status = obj.getString("reportStatus");
arrStatus= status.split(";");
}
若是JSONObject,则更简单
一般还需要判断是否JSONObject
String jsonStr = "{\"id\":\"1\",\"courseID\":\"化学\",\"title\":\"滴定实验\",\"content\":\"下周二实验楼201必须完成\"}";
try {
JSONObject jsonObject = new JSONObject(jsonStr);
Iterator iterator = jsonObject.keys();
while (iterator.hasNext()) {
String key = (String) iterator.next();
String value = jsonObject.getString(key);
System.out.println(key + "===" + value);
}
} catch (JSONException e) {
e.printStackTrace();
}
把jsonArray转成array
数据格式是:
[{"name":"IMG_20130403_140457.jpg"},{"name":"IMG_20130403_145006.jpg"},{"name":"IMG_20130403_145112.jpg"},{"name":"IMG_20130404_085559.jpg"},{"name":"IMG_20130404_113700.jpg"},{"name":"IMG_20130404_113713.jpg"},{"name":"IMG_20130404_135706.jpg"},{"name":"IMG_20130404_161501.jpg"},{"name":"IMG_20130405_082413.jpg"},{"name":"IMG_20130405_104212.jpg"},{"name":"IMG_20130405_160524.jpg"},{"name":"IMG_20130408_082456.jpg"},{"name":"test.jpg"}]
代码:
JSONArray arr = new JSONArray(yourJSONresponse);
List<String> list = new ArrayList<String>();
for(int i = 0; i < arr.length(); i++){
list.add(arr.getJSONObject(i).getString("name"));
}