Json多層對象訪問,json多層對象
背景說明
本文主要記錄示範,利用Gson工具,對多層的 Json 資料進行轉換讀取的樣本。原始 Json 字串格式化效果如下:
範例程式碼
import java.util.Iterator;import com.google.gson.Gson;import com.google.gson.GsonBuilder;import com.google.gson.JsonArray;import com.google.gson.JsonElement;import com.google.gson.JsonObject;public class Lx{ public static void main(String[] args) { String json="{\"name\":\"張三\",\"canAccess\":true,\"count\":3," + "\"data\":{\"openid\":[\"onnW20SNugoYLqPNOPExm3xae_os\",\"onnW20cNQF_T_YOLKIAmdwEbELIE\",\"onnW20WYF3UG0RdW5S-GGtdSsSB0\"]}}"; //Gson gson = new Gson(); Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create(); //字串轉換成對象 JsonObject obj = gson.fromJson(json, JsonObject.class); //普通取值 String name = obj.get("name").getAsString(); //字串 boolean canAccess = obj.get("canAccess").getAsBoolean(); //布爾 int count = obj.get("count").getAsInt(); //數值 System.out.println("姓名:" + name); System.out.println("是否可訪問:" + canAccess); System.out.println("數量:" + count); //對象及數組 JsonArray openidArr = obj.get("data").getAsJsonObject().get("openid").getAsJsonArray(); //數組 for(Iterator<JsonElement> it= openidArr.iterator(); it.hasNext();) { System.out.println(it.next().getAsString()); } }}
輸出結果
姓名:張三是否可訪問:true數量:3onnW20SNugoYLqPNOPExm3xae_osonnW20cNQF_T_YOLKIAmdwEbELIEonnW20WYF3UG0RdW5S-GGtdSsSB0