json解析几种格式

来源:互联网 发布:零基础学c语言视频 编辑:程序博客网 时间:2024/05/23 00:09



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 0
原创粉丝点击