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.rdbrunning.com站長推薦
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();
        }
    }
}




演示二:JAVA中對JSON數組解析

JSONArray的解析

下面我們開始解析JSON數組哦

和上面一樣,定義我們的JSON文件(JsonObjTest.json)

JSON數據如下:

{
    "catstr":"www.rdbrunning.com",
    "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.rdbrunning.com站長推薦
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中遇到什么問題也可以幫你解決哦

原文鏈接:JAVA用Gson解析JSON對象和JSON數組