JAVA中用Gson解析JSON對象和Json數(shù)組
很多開發(fā)者剛開始接觸的時候,不知道如何解析調用接口接收到的JSON數(shù)據(jù),
看到JSON數(shù)據(jù)都頭疼,經(jīng)常有人問我說該如何解析json數(shù)據(jù)?
今天來給大家舉個例子 說說JAVA中用Gson是如何解析JSON字符串的
我們要通過Gson進行解析,那么我們在使用前就需要導入Gson.jar包
JSON解析數(shù)據(jù)操作步驟:
1.需要進行創(chuàng)建Gson解析器
2.創(chuàng)建JSONObject對象
3.將JSON數(shù)據(jù)轉為為相應的數(shù)據(jù)
下面大家可要瞪大眼睛看仔細了哦 ,重點來咯
演示一:JSONObject的解析,JAVA解析JSON對象
為了方便起見,我把JSON數(shù)據(jù),保存在了JsonTest.json文件里面了
Json數(shù)據(jù)如下:
{ "resultcode": "200", "reason": "successed", "result": { "today": { "temperature": "6℃~22℃", "weather": "晴天 適合去逛公園" } } }
解析Object代碼:
package cn.edu.bzu.json; import java.io.FileNotFoundException; import java.io.FileReader; import com.google.gson.JsonArray; import com.google.gson.JsonIOException; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.google.gson.JsonSyntaxException; //www.hnxxbl.cn站長推薦 public class Read { public static void main(String args[]){ JsonParser parse =new JsonParser(); //創(chuàng)建JSON解析器 try { JsonObject json=(JsonObject) parse.parse(new FileReader("JsonTest.json")); //創(chuàng)建jsonObject對象 System.out.println("resultcode:" json.get("resultcode").getAsInt()); //將json數(shù)據(jù)轉為為int型的數(shù)據(jù) System.out.println("reason:" json.get("reason").getAsString()); //將json數(shù)據(jù)轉為為String型的數(shù)據(jù) JsonObject result=json.get("result").getAsJsonObject(); JsonObject today=result.get("today").getAsJsonObject(); System.out.println("temperature:" today.get("temperature").getAsString()); System.out.println("weather:" today.get("weather").getAsString()); } catch (JsonIOException e) { e.printStackTrace(); } catch (JsonSyntaxException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
JSONArray的解析
下面我們開始解析JSON數(shù)組哦
和上面一樣,定義我們的JSON文件(JsonObjTest.json)
JSON數(shù)據(jù)如下:
{ "catstr":"www.hnxxbl.cn", "language":[ {"id":1,"ide":"eclipse","name":"JavaJson解析"}, {"id":2,"ide":"Visual Stdio 2015","name":"C#Json"} ], "popstr":false }
JSON數(shù)組解析代碼:
package cn.edu.bzu.json; import java.io.FileNotFoundException; import java.io.FileReader; import com.google.gson.JsonArray; import com.google.gson.JsonIOException; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.google.gson.JsonSyntaxException; //www.hnxxbl.cn站長推薦 public class ReadJSON { public static void main(String args[]){ try { JsonParser parser=new JsonParser(); //創(chuàng)建JSON解析器 JsonObject object=(JsonObject) parser.parse(new FileReader("JsonObjTest.json")); //創(chuàng)建JsonObject對象 System.out.println("catstr=" object.get("catstr").getAsString()); //將json數(shù)據(jù)轉為為String型的數(shù)據(jù) System.out.println("popstr=" object.get("popstr").getAsBoolean()); //將json數(shù)據(jù)轉為為boolean型的數(shù)據(jù) JsonArray array=object.get("language").getAsJsonArray(); //得到為json的數(shù)組 for(int i=0;i<array.size();i ){ System.out.println("---------------"); JsonObject subObject=array.get(i).getAsJsonObject(); System.out.println("id=" subObject.get("id").getAsInt()); System.out.println("name=" subObject.get("name").getAsString()); System.out.println("ide=" subObject.get("ide").getAsString()); } } catch (JsonIOException e) { e.printStackTrace(); } catch (JsonSyntaxException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
上面的演示夠詳細吧,要是有什么不懂得可以隨時找站長,在使用JSON中遇到什么問題也可以幫你解決哦
原文鏈接:JAVA用Gson解析JSON對象和JSON數(shù)組