JAVA中用Gson解析JSON对象和Json数组
很多开发者刚开始接触的时候,不知道如何解析调用接口接收到的JSON数据,
看到JSON数据都头疼,经常有人问我说该如何解析json数据?
今天来给大家举个例子 说说JAVA中用Gson是如何解析JSON字符串的
我们要通过Gson进行解析,那么我们在使用前就需要导入Gson.jar包
JSON解析数据操作步骤:
1.需要进行创建Gson解析器
2.创建JSONObject对象
3.将JSON数据转为为相应的数据
下面大家可要瞪大眼睛看仔细了哦 ,重点来咯
演示一:JSONObject的解析,JAVA解析JSON对象
为了方便起见,我把JSON数据,保存在了JsonTest.json文件里面了
Json数据如下:
{ "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.jsons.cn站长推荐 public class Read { public static void main(String args[]){ JsonParser parse =new JsonParser(); //创建JSON解析器 try { JsonObject json=(JsonObject) parse.parse(new FileReader("JsonTest.json")); //创建jsonObject对象 System.out.println("resultcode:" json.get("resultcode").getAsInt()); //将json数据转为为int型的数据 System.out.println("reason:" json.get("reason").getAsString()); //将json数据转为为String型的数据 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数组哦
和上面一样,定义我们的JSON文件(JsonObjTest.json)
JSON数据如下:
{ "catstr":"www.jsons.cn", "language":[ {"id":1,"ide":"eclipse","name":"JavaJson解析"}, {"id":2,"ide":"Visual Stdio 2015","name":"C#Json"} ], "popstr":false }
JSON数组解析代码:
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.jsons.cn站长推荐 public class ReadJSON { public static void main(String args[]){ try { JsonParser parser=new JsonParser(); //创建JSON解析器 JsonObject object=(JsonObject) parser.parse(new FileReader("JsonObjTest.json")); //创建JsonObject对象 System.out.println("catstr=" object.get("catstr").getAsString()); //将json数据转为为String型的数据 System.out.println("popstr=" object.get("popstr").getAsBoolean()); //将json数据转为为boolean型的数据 JsonArray array=object.get("language").getAsJsonArray(); //得到为json的数组 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中遇到什么问题也可以帮你解决哦