(转)解析、遍历JSONObject和JSONArray

附上原创作者的原文
https://blog.csdn.net/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"));
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值