背景说明
本文主要记录演示,利用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
Json多层对象访问
原文地址:http://www.cnblogs.com/rulian/p/7804462.html