Json多层对象访问
Posted 如莲家园
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 数量:3 onnW20SNugoYLqPNOPExm3xae_os onnW20cNQF_T_YOLKIAmdwEbELIE onnW20WYF3UG0RdW5S-GGtdSsSB0
以上是关于Json多层对象访问的主要内容,如果未能解决你的问题,请参考以下文章
错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”