A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

大菠萝

中级黑马

  • 黑马币:-73

  • 帖子:147

  • 精华:0

© 大菠萝 中级黑马   /  2015-7-3 23:58  /  3846 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

31黑马币
:{
    "response": {
        "data": [
            {
                "address": "南京市游乐园",
                "province": "江苏",
                "district": "玄武区",
                "city": "南京"
            }
        ]
        "datas": [
            {
                "address": "北京市游乐园",
                "province": "北京",
                "district": "海淀区",
                "city": "北京"
            }
        ]
    },
    "status": "ok"
}
我要读 datas 中的 district 的值,怎么写?

最佳答案

查看完整内容

JSONObject dataJson=new JSONObject("你的Json数据“); JSONObject response=dataJson.getJSONObject("response"); JSONArray data=response.getJSONArray("data"); JSONObject info=data.getJSONObject(0); String province=info.getString("province"); String city=info.getString("city"); String district=info.getString("district"); String address=info.getString("address"); System.out.println(province+city+dist ...

6 个回复

倒序浏览
JSONObject  dataJson=new JSONObject("你的Json数据“); JSONObject  response=dataJson.getJSONObject("response"); JSONArray data=response.getJSONArray("data"); JSONObject info=data.getJSONObject(0); String province=info.getString("province"); String city=info.getString("city"); String district=info.getString("district"); String address=info.getString("address");  System.out.println(province+city+district+address);
回复 使用道具 举报
本帖最后由 Morgan 于 2015-7-4 14:41 编辑

首先,“datas”少了逗号,加上后才是正确的json数据。
废话不多说:直接上代码:
最外面的大括号{}解析
  1. String jsonStr="要解析的json语句";
  2.         try
  3.                 {
  4.                         //如果是java,首先要加入一个jar包 json-lib-2.4-jdk15.jarr包
  5.                         JSONObject jsonObject=new JSONObject(jsonStr);//1.第一层, 最外面{}实体
  6.                         
  7.                         JSONObject responseObject=jsonObject.getJSONObject("response");//2.第二层 response {}实体
  8.                         //responseObject下有两个元素,data和datas两个数组
  9.                         //解析第二个数组datas
  10.                         JSONArray array=responseObject.getJSONArray("datas");//第三次 Array[]数组
  11.                         //拿到datas中每一个元素---遍历数组中的每一个元素
  12.                     for (int i = 0; i < array.length(); i++)
  13.                         {
  14.                             //拿到的元素实体
  15.                             JSONObject object=array.getJSONObject(i);//第四层  每一个实体{}
  16.                             //获取实体中的字符串---district
  17.                             String district=object.getString("district");//  第五层  这里就拿到了实体中每一个字符串
  18.                                 
  19.                         }
  20.                     
  21.                    /**
  22.                       *网上类似json解析的资源很多,简单的搜一下就可以很轻松的解决。
  23.                      *推荐教程连接:<a  target="_blank">http://www.open-open.com/lib/view/open1326376799874.html</a>
  24.                     */
  25.                         
  26.                         
  27.                         
  28.                 } catch (JSONException e)
  29.                 {
  30.                         // TODO Auto-generated catch block
  31.                         e.printStackTrace();
  32.                 }
复制代码


  //希望可以帮助到你

评分

参与人数 1黑马币 +3 收起 理由
大菠萝 + 3 多谢你哦,帮朋友忙,不然分就给你了,不过.

查看全部评分

回复 使用道具 举报
正确的json格式是这样的:
  1. {
  2.     "response": {
  3.         "data": [
  4.             {
  5.                 "address": "南京市游乐园",
  6.                 "province": "江苏",
  7.                 "district": "玄武区",
  8.                 "city": "南京"
  9.             }
  10.         ],
  11.         "datas": [
  12.             {
  13.                 "address": "北京市游乐园",
  14.                 "province": "北京",
  15.                 "district": "海淀区",
  16.                 "city": "北京"
  17.             }
  18.         ]
  19.     },
  20.     "status": "ok"
  21. }
复制代码
回复 使用道具 举报
来这是学习的,不用打赏
回复 使用道具 举报
注意:{}里面的为JsonObject对象,[ ]里为JsonArry数组。
读取分别使用:JSONObject response=dataJson.getJSONObject("response");
JSONArray data=response.getJSONArray("data");
读取datas即为:String district=data.getJSONObject(0).getString("district");
回复 使用道具 举报
是定义了一个对象response={   ……   }   
import net.sf.json.JSONObject;
JSONObject jsonObject=JSONObject.fromObject(response);
        System.out.println(jsonObject(0).get("district"));
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马