码迷,mamicode.com
首页 > Web开发 > 详细

Json多层对象访问

时间:2017-11-08 17:30:42      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:分享   style   class   main   one   字符串转换   数值   data   rgs   

背景说明

本文主要记录演示,利用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多层对象访问

标签:分享   style   class   main   one   字符串转换   数值   data   rgs   

原文地址:http://www.cnblogs.com/rulian/p/7804462.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!