<p>1.什么是JSON? (http://www.json.org/)</p><p><img src="/up_pic/201809/020957329808.png" title="020957329808.png" alt="1.png"/></p><p>JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.</p><p>(图片来自:http://www.cnblogs.com/xiaoluo501395377/p/3446605.html)</p><p></p><p>2.Json数据类型</p><p>2-1.json对象</p><p><img src="/up_pic/201809/020957403341.png" title="020957403341.png" alt="2.png"/></p><p>2-2.json数组</p><p><img src="/up_pic/201809/020957442924.png" title="020957442924.png" alt="3.png"/></p><p></p><p>ps:JSONObject与JSONArray的区别</p><p><img src="/up_pic/201809/020957531923.png" title="020957531923.png" alt="4.png"/></p><p>(JSON数组)</p><p><img src="/up_pic/201809/020957596592.png" title="020957596592.png" alt="5.png"/></p><p>(JSON数组)</p><p></p><p>3.解析JSON数据(小编使用的GSON进行json数据的解析)</p><p>3-1 【JSONObject的解析】</p><p>下面是一个json文件:</p><p>我们进行解析(解析一部分):</p><p>package cn.edu.bzu.json;</p><p></p><p>import java.io.FileNotFoundException;</p><p>import java.io.FileReader;</p><p></p><p>import com.google.gson.JsonArray;</p><p>import com.google.gson.JsonIOException;</p><p>import com.google.gson.JsonObject;</p><p>import com.google.gson.JsonParser;</p><p>import com.google.gson.JsonSyntaxException;</p><p></p><p>public class Read {</p><p> public static void main(String args[]){</p><p> JsonParser parse =new JsonParser(); //创建json解析器</p><p> try {</p><p> JsonObject json=(JsonObject) parse.parse(new FileReader(&quot;weather.json&quot;)); //创建jsonObject对象</p><p> System.out.println(&quot;resultcode:&quot;+json.get(&quot;resultcode&quot;).getAsInt()); //将json数据转为为int型的数据</p><p> System.out.println(&quot;reason:&quot;+json.get(&quot;reason&quot;).getAsString()); //将json数据转为为String型的数据</p><p> </p><p> JsonObject result=json.get(&quot;result&quot;).getAsJsonObject();</p><p> JsonObject today=result.get(&quot;today&quot;).getAsJsonObject();</p><p> System.out.println(&quot;temperature:&quot;+today.get(&quot;temperature&quot;).getAsString());</p><p> System.out.println(&quot;weather:&quot;+today.get(&quot;weather&quot;).getAsString());</p><p> </p><p> } catch (JsonIOException e) {</p><p> e.printStackTrace();</p><p> } catch (JsonSyntaxException e) {</p><p> e.printStackTrace();</p><p> } catch (FileNotFoundException e) {</p><p> e.printStackTrace();</p><p> }</p><p> }</p><p>}</p><p>输出结果:</p><p><img src="/up_pic/201809/020958076273.png" title="020958076273.png" alt="6.png"/></p><p></p><p>3-2 【JSONArray的解析】</p><p>下面是一个json文件</p><p>复制代码</p><p>{</p><p> &quot;cat&quot;:&quot;it&quot;,</p><p> &quot;language&quot;:[</p><p> {&quot;id&quot;:1,&quot;ide&quot;:&quot;eclipse&quot;,&quot;name&quot;:Java},</p><p> {&quot;id&quot;:2,&quot;ide&quot;:&quot;XCode&quot;,&quot;name&quot;:&quot;Swift&quot;},</p><p> {&quot;id&quot;:3,&quot;ide&quot;:&quot;Visual Stdio&quot;,&quot;name&quot;:&quot;C#&quot;} </p><p> ],</p><p> &quot;pop&quot;:true</p><p>}</p><p>复制代码</p><p>我们进行解析:</p><p>package cn.edu.bzu.json;</p><p></p><p>import java.io.FileNotFoundException;</p><p>import java.io.FileReader;</p><p></p><p>import com.google.gson.JsonArray;</p><p>import com.google.gson.JsonIOException;</p><p>import com.google.gson.JsonObject;</p><p>import com.google.gson.JsonParser;</p><p>import com.google.gson.JsonSyntaxException;</p><p></p><p>public class ReadJSON {</p><p> public static void main(String args[]){</p><p> try {</p><p> </p><p> JsonParser parser=new JsonParser(); //创建JSON解析器</p><p> JsonObject object=(JsonObject) parser.parse(new FileReader(&quot;test.json&quot;)); //创建JsonObject对象</p><p> System.out.println(&quot;cat=&quot;+object.get(&quot;cat&quot;).getAsString()); //将json数据转为为String型的数据</p><p> System.out.println(&quot;pop=&quot;+object.get(&quot;pop&quot;).getAsBoolean()); //将json数据转为为boolean型的数据</p><p> </p><p> JsonArray array=object.get(&quot;language&quot;).getAsJsonArray(); //得到为json的数组</p><p> for(int i=0;i&lt;array.size();i++){</p><p> System.out.println(&quot;---------------&quot;);</p><p> JsonObject subObject=array.get(i).getAsJsonObject();</p><p> System.out.println(&quot;id=&quot;+subObject.get(&quot;id&quot;).getAsInt());</p><p> System.out.println(&quot;name=&quot;+subObject.get(&quot;name&quot;).getAsString());</p><p> System.out.println(&quot;ide=&quot;+subObject.get(&quot;ide&quot;).getAsString());</p><p> }</p><p> </p><p> } catch (JsonIOException e) {</p><p> e.printStackTrace();</p><p> } catch (JsonSyntaxException e) {</p><p> e.printStackTrace();</p><p> } catch (FileNotFoundException e) {</p><p> e.printStackTrace();</p><p> }</p><p> }</p><p>}</p><p>输出结果:</p><p></p><p>3-3 【分析】</p><p>我们通过Gson进行解析,所以在使用前需要导入Gson.jar</p><p>解析json数据时,</p><p>1.需要进行创建Gson解析器</p><p>2.创建JSONObject对象</p><p>3.将json数据转为为相应的数据</p><p></p>
T:0.006509s,M:252.04 KB
返回顶部 留言