Gson转换json数据为对象

可以通过Gson使用两种方法,将json字符串转换为对象,以下面该段报文做测试

{
    "id": 84041462,
    "lastName": "小华",
    "age":32,
    "balance":666255.32,
    "hobbyDesc": {
        "subject": "数学",
        "score":25,
        "sport_desc":"跑步有益健康"
    }
}

1. 创建实体类,通过 fromJson方法将json数据封装进对象中

如上,将上面报文按层次解析并创建两个对象

import com.google.gson.annotations.SerializedName;

public class HobbyDesc {

    private String subject;
    private int score;
    @SerializedName("sport_desc")
    private String sportDesc;

    //***
public class Account {
    private String id;
    private String lastName;
    private int age;
    private double balance;
    private HobbyDesc hobbyDesc;
        //***

解析

String jsonStr = "{\n" +
                "\t\"id\": 84041462,\n" +
                "\t\"lastName\": \"小华\",\n" +
                "\t\"age\":32,\n" +
                "\t\"balance\":666255.32,\n" +
                "\t\"hobbyDesc\": {\n" +
                "\t\t\"subject\": \"数学\",\n" +
                "\t\t\"score\":25,\n" +
                "\t\t\"sport_desc\":\"跑步有益健康\"\n" +
                "\t}\n" +
                "\t\n" +
                "}";

Account account = new Gson().fromJson(jsonStr,Account.class);

同时也可以看到,对象中定义为字符串类型的字段也可以接受json串的数值类型,没有转换问题。

2. 解析为jsonObject对象

直接使用Gson API解析

String jsonStr = "{\n" +
                "\t\"id\": 84041462,\n" +
                "\t\"lastName\": \"小华\",\n" +
                "\t\"age\":32,\n" +
                "\t\"balance\":666255.32,\n" +
                "\t\"hobbyDesc\": {\n" +
                "\t\t\"subject\": \"数学\",\n" +
                "\t\t\"score\":25,\n" +
                "\t\t\"sport_desc\":\"跑步有益健康\"\n" +
                "\t}\n" +
                "\t\n" +
                "}";
JsonObject jsonObject = (JsonObject) new JsonParser().parse(jsonStr);
System.out.println("id <getAsInt> = "+jsonObject.get("id").getAsInt());//id <getAsInt> = 84041462
System.out.println("id <getAsString> = "+jsonObject.get("id").getAsString());//id <getAsString> = 84041462
System.out.println("position = "+ jsonObject.get("hobbyDesc").getAsJsonObject().get("sport_desc").getAsString());//position = 跑步有益健康

参照jsonObject结构,可以了解Gson这种封装对象的方式,如果仅仅是取某值的话,可以采用这种方式,可以节约大量时间

原文地址:https://www.cnblogs.com/zjfjava/p/10122327.html

时间: 2024-11-08 06:09:31

Gson转换json数据为对象的相关文章

Android中使用Gson解析JSON数据的两种方法

Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率. 从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词. 第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组

NSJSONSerialization 转换JSON数据的 NSJSONReadingOptions的意思

[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingOptions error:&error]; NSJSONReadingOptions有三个枚举值,具体含义如下: 1.NSJSONReadingMutableContainers :Specifies that arrays and dictionaries are created as mutable objects. 指定方法创建的数组和字典是可变的对象.(意

Google Gson解析Json数据应用实例

转自:http://lixigao449778967.blog.163.com/blog/static/24985164201269105928783/ 1.需要的Jar包 1) Google Gson(gson-xxx.jar)下载地址:http://code.google.com/p/google-gson/downloads/list 2)JUnit4 2. 应用实例代码 下载地址:http://download.csdn.net/source/3499627 包括如下类: 1)普通Jav

Android网络之数据解析----使用Google Gson解析Json数据

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4063452.html 联系方式:[email protected] [正文] 文章回顾: Android网络之数据解析----SAX方式解析XML数据 一.Json数据的介绍                                                             

Gson解析Json数据

在Android开发中就经常用到json解析,方便的是Google已经为我们提供了一个很棒的json解析库–gson. 以下是示例代码: /** * GSON解析JSON数据 * @author dream * */ public class TestGsonActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method

Json数据序列化对象,及对象序列化为Json格式

public class JsonHelper { /// <summary> /// 生成Json格式 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="obj"></param> /// <returns></returns> public static string GetJso

android_使用Gson解析json数据

Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率. 从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词. 第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(List),比如"北京,上海". 第三种类型是映射(mapping),也就是一个名/值对(

Java操作JSON数据(2)--Gson操作JSON数据

Gson是Google公司发布的一个开发源码的Java库,可用于将Java对象转换为JSON字符串,也可用于将JSON字符串转换为对应的Java对象.本介绍下Gson的基本使用方法,包括序列化和反序列化:文中所使用到的软件版本:Java 1.8.0_191.Gson 2.8.6. 1.引入依赖 <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactI

C#的百度地图开发(二)转换JSON数据为相应的类

原文:C#的百度地图开发(二)转换JSON数据为相应的类 在<C#的百度地图开发(一)发起HTTP请求>一文中我们向百度提供的API的URL发起请求,并得到了返回的结果,结果是一串JSON数据,我们先将这个JSON数据,使用在线工盯进行格式化. [html] view plaincopy { "status": 0, "result": [ { "x": 39.926674689976, "y": 116.4659