json解析几种格式



1、直接一个数组

 前面为jsondata,下面是解析方法

 <strong>// [{"devid":"1234567800","latitude":"29.4963","longitude":"116.189","postime":"2014-06-10 12:13:00"},
 // {"devid":"1234567832","latitude":"29.4943","longitude":"1161.129","postime":"2014-06-11 12:13:00"}]

JSONArray jsonArray = new JSONArray(jsonData);
    
     for (int i=0;i<jsonArray.length();i++)
     {
        JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i); 
         str=str+"第"+i+"个,devid:"+jsonObject2.getString("devid")+"维度:"+jsonObject2.getString("latitude")+"\n";    
     }</strong>


2、最简单 的 直接一个对象

 前面为jsondata,下面是解析方法

<span style="font-size:24px;"> </span><span style="font-size:18px;"> // {"username":"zms",age:23,"addr","from china"};
     String json="{\"username\":\"zms\",\"age\":43,\"addr\":\"江西省高安市村前镇\"}";
      
</pre><pre name="code" class="java" style="font-weight: bold;">  JSONObject jsonObject2 =new JSONObject(json);
         str="名字:"+jsonObject2.getString("username")+"年薪:"+jsonObject2.getString("age")+jsonObject2.getString("addr")+"\n";</span>
<span style="font-size:18px;">
</span>


3、 对象里有数组

<span style="font-size:24px;"> </span><span style="font-size:18px;">//{"username":"zms",age:11,</span>
<span style="font-size:18px;"><span style="white-space:pre">	</span>"jicheng":[{"zhengshu":"PMP","date":"2011年"},</span>
<span style="font-size:18px;">  <span style="white-space:pre">		</span>   {"zhengshu":"信息系统项目管理师","date","2012年"}]</span>
<span style="font-size:18px;"><span style="white-space:pre">			</span>,"addr":"江西"}</span>
<span style="font-size:18px;">
 // 这种也属于 对象里有数组   </span>
<span style="font-size:18px;"><span style="white-space:pre">	</span>{"json":[{"username":"zms","date":"2011年"},{"username":"ivy","date","2012年"}]}</span>
<span style="font-size:18px;">
String json= "{\"username\":\"张木生\",age:11,\</span>
<span style="font-size:18px;"><span style="white-space:pre">	</span>"jicheng\":[{\"zhengshu\":\"PMP\",\"date\":\"2011年\"},</span>
<span style="font-size:18px;"><span style="white-space:pre">	</span>{\"zhengshu\":\"信息系统项目管理师\",\"date\":\"2012年\"}],</span>
<span style="font-size:18px;"><span style="white-space:pre">	</span>\"addr\":\"江西\"}";
      
   
      JSONObject jsonObject2 =new JSONObject(json);
         str="名字:"+jsonObject2.getString("username");
         str=str+"工龄:"+jsonObject2.getString("age")+"证书:";
         JSONArray jsonArray = jsonObject2.getJSONArray("jicheng"); 
         for (int i=0;i<jsonArray.length();i++)
         {
          JSONObject jsonObjectSon= (JSONObject)jsonArray.opt(i); 
          str=str+jsonObjectSon.getString("zhengshu")+"年份:"+jsonObjectSon.getString("date");
         }
         str=str+"籍贯"+jsonObject2.getString("addr");</span>


4、直接一个数组 

 // [{"devid":"1234567800","latitude":"29.4963","longitude":"116.189"},{"devid":"1234567832","latitude":"29.4943","longitude":"1161.129"}]
 String json="[{\"devid\":\"1234567800\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\"},{\"devid\":\"1234567832\",\"latitude\":\"29.4943\",\"longitude\":\"1161.129\"}]";
  
     
</pre><pre name="code" class="java"> JSONArray jsonArray = new JSONArray(json);
      for (int i=0;i<jsonArray.length();i++)
      {
         JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i); 
         str=str+"第"+i+"个,devid:"+jsonObject2.getString("devid")+"维度:"+jsonObject2.getString("latitude")+"经度<span style="white-space:pre">	</span> :"+jsonObject2.getString("longitude")+"\n";
        
      }

/*从安卓3.0以后,就不允许在主线程中直接访问网络,必须在子线程中访问
       访问后要修改主线程的UI,需要使用handler通信*/

详细见下一篇

解决方法:可以使用采用异步或者开启新的子线程


 前面为jsondata,下面是解析方法

 <strong>// [{"devid":"1234567800","latitude":"29.4963","longitude":"116.189","postime":"2014-06-10 12:13:00"},
 // {"devid":"1234567832","latitude":"29.4943","longitude":"1161.129","postime":"2014-06-11 12:13:00"}]

JSONArray jsonArray = new JSONArray(jsonData);
    
     for (int i=0;i<jsonArray.length();i++)
     {
        JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i); 
         str=str+"第"+i+"个,devid:"+jsonObject2.getString("devid")+"维度:"+jsonObject2.getString("latitude")+"\n";    
     }</strong>


2、最简单 的 直接一个对象

 前面为jsondata,下面是解析方法

<span style="font-size:24px;"> </span><span style="font-size:18px;"> // {"username":"zms",age:23,"addr","from china"};
     String json="{\"username\":\"zms\",\"age\":43,\"addr\":\"江西省高安市村前镇\"}";
      
</pre><pre name="code" class="java" style="font-weight: bold;">  JSONObject jsonObject2 =new JSONObject(json);
         str="名字:"+jsonObject2.getString("username")+"年薪:"+jsonObject2.getString("age")+jsonObject2.getString("addr")+"\n";</span>
<span style="font-size:18px;">
</span>


3、 对象里有数组

<span style="font-size:24px;"> </span><span style="font-size:18px;">//{"username":"zms",age:11,</span>
<span style="font-size:18px;"><span style="white-space:pre">	</span>"jicheng":[{"zhengshu":"PMP","date":"2011年"},</span>
<span style="font-size:18px;">  <span style="white-space:pre">		</span>   {"zhengshu":"信息系统项目管理师","date","2012年"}]</span>
<span style="font-size:18px;"><span style="white-space:pre">			</span>,"addr":"江西"}</span>
<span style="font-size:18px;">
 // 这种也属于 对象里有数组   </span>
<span style="font-size:18px;"><span style="white-space:pre">	</span>{"json":[{"username":"zms","date":"2011年"},{"username":"ivy","date","2012年"}]}</span>
<span style="font-size:18px;">
String json= "{\"username\":\"张木生\",age:11,\</span>
<span style="font-size:18px;"><span style="white-space:pre">	</span>"jicheng\":[{\"zhengshu\":\"PMP\",\"date\":\"2011年\"},</span>
<span style="font-size:18px;"><span style="white-space:pre">	</span>{\"zhengshu\":\"信息系统项目管理师\",\"date\":\"2012年\"}],</span>
<span style="font-size:18px;"><span style="white-space:pre">	</span>\"addr\":\"江西\"}";
      
   
      JSONObject jsonObject2 =new JSONObject(json);
         str="名字:"+jsonObject2.getString("username");
         str=str+"工龄:"+jsonObject2.getString("age")+"证书:";
         JSONArray jsonArray = jsonObject2.getJSONArray("jicheng"); 
         for (int i=0;i<jsonArray.length();i++)
         {
          JSONObject jsonObjectSon= (JSONObject)jsonArray.opt(i); 
          str=str+jsonObjectSon.getString("zhengshu")+"年份:"+jsonObjectSon.getString("date");
         }
         str=str+"籍贯"+jsonObject2.getString("addr");</span>


4、直接一个数组 

 // [{"devid":"1234567800","latitude":"29.4963","longitude":"116.189"},{"devid":"1234567832","latitude":"29.4943","longitude":"1161.129"}]
 String json="[{\"devid\":\"1234567800\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\"},{\"devid\":\"1234567832\",\"latitude\":\"29.4943\",\"longitude\":\"1161.129\"}]";
  
     
</pre><pre name="code" class="java"> JSONArray jsonArray = new JSONArray(json);
      for (int i=0;i<jsonArray.length();i++)
      {
         JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i); 
         str=str+"第"+i+"个,devid:"+jsonObject2.getString("devid")+"维度:"+jsonObject2.getString("latitude")+"经度<span style="white-space:pre">	</span> :"+jsonObject2.getString("longitude")+"\n";
        
      }

/*从安卓3.0以后,就不允许在主线程中直接访问网络,必须在子线程中访问
       访问后要修改主线程的UI,需要使用handler通信*/

详细见下一篇

解决方法:可以使用采用异步或者开启新的子线程

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值