首页 > 编程 > Java > 正文

Java中利用gson解析Json实例教程

2019-11-26 12:13:46
字体:
来源:转载
供稿:网友

前言

本文主要跟大家介绍了关于Java用gson解析Json的相关内容,分享出来供大家参考学习,需要的朋友们下面来一起看看吧。

json数据

{ "resultcode": "200", "reason": "successed!", "result": {  "sk": {   "temp": "24",   "wind_direction": "西南风",   "wind_strength": "2级",   "humidity": "51%",   "time": "10:11"  },  "today": {   "temperature": "16℃~27℃",   "weather": "阴转多云",   "weather_id": {    "fa": "02",    "fb": "01"   },   "wind": "西南风3-4 级",   "week": "星期四",   "city": "滨州",   "date_y": "2015年06月04日",   "dressing_index": "舒适",   "dressing_advice": "建议着长袖T恤、衬衫加单裤等服装。年老体弱者宜着针织长袖衬衫、马甲和长裤。",   "uv_index": "最弱",   "comfort_index": "",   "wash_index": "较适宜",   "travel_index": "",   "exercise_index": "较适宜",   "drying_index": ""  },  "future": [   {    "temperature": "16℃~27℃",    "weather": "阴转多云",    "weather_id": {     "fa": "02",     "fb": "01"    },    "wind": "西南风3-4 级",    "week": "星期四",    "date": "20150604"   },   {    "temperature": "20℃~32℃",    "weather": "多云转晴",    "weather_id": {     "fa": "01",     "fb": "00"    },    "wind": "西风3-4 级",    "week": "星期五",    "date": "20150605"   },   {    "temperature": "23℃~35℃",    "weather": "多云转阴",    "weather_id": {     "fa": "01",     "fb": "02"    },    "wind": "西南风3-4 级",    "week": "星期六",    "date": "20150606"   },   {    "temperature": "20℃~33℃",    "weather": "多云",    "weather_id": {     "fa": "01",     "fb": "01"    },    "wind": "北风微风",    "week": "星期日",    "date": "20150607"   },   {    "temperature": "22℃~34℃",    "weather": "多云",    "weather_id": {     "fa": "01",     "fb": "01"    },    "wind": "西南风3-4 级",    "week": "星期一",    "date": "20150608"   },   {    "temperature": "22℃~33℃",    "weather": "阴",    "weather_id": {     "fa": "02",     "fb": "02"    },    "wind": "西南风3-4 级",    "week": "星期二",    "date": "20150609"   },   {    "temperature": "22℃~33℃",    "weather": "多云",    "weather_id": {     "fa": "01",     "fb": "01"    },    "wind": "南风3-4 级",    "week": "星期三",    "date": "20150610"   }  ] }, "error_code": 0} 

解析JSONObject

import com.google.gson.JsonObject;import com.google.gson.JsonParser;import com.google.gson.JsonSyntaxException;import com.google.gson.JsonIOException;import java.io.FileNotFoundException;import java.io.FileReader;public class ReadJson { public static void main(String []args) {  JsonParser parse = new JsonParser();  try {   JsonObject json = (JsonObject) parse.parse(new FileReader("weather.json"));   System.out.println("resultcode:" + json.get("resultcodeu").getAsInt());   System.out.println("reason:" + json.get("reason").getAsString());   JsonObject result = json.get("result").getAsJsonObject();   JsonObject today = result.get("today").getAsJsonObject();   System.out.println("weak:" + today.get("week").getAsString());   System.out.println("weather:" + today.get("weather").getAsString());  } catch (JsonIOException e) {   e.printStackTrace();  } catch (NullPointerException e) {   e.printStackTrace();  } catch (JsonSyntaxException e){   e.printStackTrace();  } catch (FileNotFoundException e) {   e.printStackTrace();  } }}

解析JSONArray

import com.google.gson.JsonParser;import com.google.gson.JsonArray;import com.google.gson.JsonObject;import com.google.gson.JsonSyntaxException;import com.google.gson.JsonIOException;import java.io.FileNotFoundException;import java.io.FileReader;public class ReadJsonArray { public static void main(String []args) {  JsonParser parse = new JsonParser();  try {   JsonObject json = (JsonObject)parse.parse(new FileReader("C://Users//wzh94434//IdeaProjects//TestProject//jsontest//src//main//java//weather.json"));   JsonObject result = json.get("result").getAsJsonObject();   JsonArray futureArray = result.get("future").getAsJsonArray();   for (int i = 0; i < futureArray.size(); ++i) {    JsonObject subObj = futureArray.get(i).getAsJsonObject();    System.out.println("------");    System.out.println("week:" + subObj.get("week").getAsString());    System.out.println("weather:" + subObj.get("weather").getAsString());   }  } catch (FileNotFoundException e) {   e.printStackTrace();  } catch (JsonIOException e) {   e.printStackTrace();  } catch (JsonSyntaxException e) {   e.printStackTrace();  } }}

注意:文件路径相对路径是从工程根目录开始

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对武林网的支持。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表