标签: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