标签:json
我们先来学习下JSON定义:
(1).JSON是一种轻量级的数据交换格式
(2).JSON基于两种数据结构:Object和Array。其中Object是“名称/值”对的集合。
(3).对象:大括号,每一组string-value结合以","分隔,string和value以冒号分隔。
JSON数据格式,在Android中被广泛运用于客户端和网络(或者说服务器)通信,非常有必要系统的了解学习。
JSON解析
(1).解析Object之一:
{"url":"http://zebra.com"}
解析方法:
<span style="font-size:18px;"><code class="java plain">JSONObject demoJson = </code><code class="java keyword"><span style="color:#0000ff;">new</span></code> <code class="java plain">JSONObject(jsonString); </code></span><div class="container"><div class="line number2 index1 alt1"><span style="font-size:18px;"><code class="java plain">String url = demoJson.getString(</code><code class="java string"><span style="color:#0000ff;">"url"</span></code><code class="java plain">);</code></span></div></div>
<span style="font-size:18px;">{"name":"android","name":"iphone"}</span> 解析方法:<span style="font-size:18px;">JSONObject demoJson = new JSONObject(jsonString);
String name = demoJson.getString("name");
String version = demoJson.getString("version");
System.out.println("name:"+name+",version:"+version);</span>
(3).解析Array之一:
<span style="font-size:18px;">{"number":[1,2,3]}</span> 解析方法:
<span style="font-size:18px;">JSONObject demoJson = new JSONObject(jsonString);
JSONArray numberList = demoJson.getJSONArray("number");
for(int i=0; i<numberList.length(); i++){
//因为数组中的类型为int,所以为getInt,其他getString,getLong同用
System.out.println(numberList.getInt(i));
}</span>(4).解析Array之二:
<span style="font-size:18px;">{"number":[[1],[2],[3]]}</span>解析方法:
<span style="font-size:18px;">//嵌套数组遍历
JSONObject demoJson = new JSONObject(jsonString);
JSONArray numberList = demoJson.getJSONArray("number");
for(int i=0; i<numberList.length(); i++){
//获取数组中的数组
System.out.println(numberList.getJSONArray(i).getInt(0));
}</span>(5).解析Object和Array:
<span style="font-size:18px;">{"mobile":[{"name":"android"},{"name":"iphone"}]}</span>解析方法:
<span style="font-size:18px;">JSONObject demoJson = new JSONObject(jsonString);
JSONArray numberList = demoJson.getJSONArray("mobile");
for(int i=0; i<numberList.length(); i++){
System.out.println(numberList.getJSONObject(i).getString("name"));
}</span>所以,我们发现get后面接着的是你想要的得到的结果的类型:getType,这个对理解很有帮助。<span style="font-size:18px;">//无url节点,抛出异常
String url = demoJson.getString("url");
//无url节点,返回空,如果为基本类型,则返回默认值
String url = demoJson.optString("url");</span><span style="font-size:18px;">JSONObject ob = new JSONObject();
ob.put("list", list);
// System.out.println(ob.toString());
out.write(js.toString());
//最后别忘了flush掉
if(out != null){
out.flush;
out.close;
}</span>标签:json
原文地址:http://blog.csdn.net/zeb_perfect/article/details/42177269