<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("weather.json")); //创建jsonObject对象</p><p> System.out.println("resultcode:"+json.get("resultcode").getAsInt()); //将json数据转为为int型的数据</p><p> System.out.println("reason:"+json.get("reason").getAsString()); //将json数据转为为String型的数据</p><p> </p><p> JsonObject result=json.get("result").getAsJsonObject();</p><p> JsonObject today=result.get("today").getAsJsonObject();</p><p> System.out.println("temperature:"+today.get("temperature").getAsString());</p><p> System.out.println("weather:"+today.get("weather").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> "cat":"it",</p><p> "language":[</p><p> {"id":1,"ide":"eclipse","name":Java},</p><p> {"id":2,"ide":"XCode","name":"Swift"},</p><p> {"id":3,"ide":"Visual Stdio","name":"C#"} </p><p> ],</p><p> "pop":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("test.json")); //创建JsonObject对象</p><p> System.out.println("cat="+object.get("cat").getAsString()); //将json数据转为为String型的数据</p><p> System.out.println("pop="+object.get("pop").getAsBoolean()); //将json数据转为为boolean型的数据</p><p> </p><p> JsonArray array=object.get("language").getAsJsonArray(); //得到为json的数组</p><p> for(int i=0;i<array.size();i++){</p><p> System.out.println("---------------");</p><p> JsonObject subObject=array.get(i).getAsJsonObject();</p><p> System.out.println("id="+subObject.get("id").getAsInt());</p><p> System.out.println("name="+subObject.get("name").getAsString());</p><p> System.out.println("ide="+subObject.get("ide").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>