Gson转换json数据为对象

摘要:
可以通过Gson使用两种方法,将json字符串转换为对象,以下面该段报文做测试{"id":84041462,"lastName":"小华","age":32,"balance":666255.32,"hobbyDesc":{"subject":"数学","score":25,"sport_desc":"跑步有益健康"}}1.创建实体类,通过fromJson方法将json数据封装进对象中如上,将上面

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

{
    "id": 84041462,
    "lastName": "小华",
    "age":32,
    "balance":666255.32,
    "hobbyDesc": {
        "subject": "数学",
        "score":25,
        "sport_desc":"跑步有益健康"
    }    
}
1. 创建实体类,通过fromJson方法将json数据封装进对象中

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

importcom.google.gson.annotations.SerializedName;
public classHobbyDesc {
    privateString subject;
    private intscore;
    @SerializedName("sport_desc")
    privateString sportDesc;
    //***
public classAccount {
    privateString id;
    privateString lastName;
    private intage;
    private doublebalance;
    privateHobbyDesc hobbyDesc;

//
***

解析

String jsonStr = "{
" +
                "	"id": 84041462,
" +
                "	"lastName": "小华",
" +
                "	"age":32,
" +
                "	"balance":666255.32,
" +
                "	"hobbyDesc": {
" +
                "		"subject": "数学",
" +
                "		"score":25,
" +
                "		"sport_desc":"跑步有益健康"
" +
                "	}
" +
                "	
" +
                "}";
Account account =newGson().fromJson(jsonStr,Account.class);

Gson转换json数据为对象第1张

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

2. 解析为jsonObject对象

直接使用Gson API解析

String jsonStr = "{
" +
                "	"id": 84041462,
" +
                "	"lastName": "小华",
" +
                "	"age":32,
" +
                "	"balance":666255.32,
" +
                "	"hobbyDesc": {
" +
                "		"subject": "数学",
" +
                "		"score":25,
" +
                "		"sport_desc":"跑步有益健康"
" +
                "	}
" +
                "	
" +
                "}";
JsonObject jsonObject = (JsonObject) newJsonParser().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这种封装对象的方式,如果仅仅是取某值的话,可以采用这种方式,可以节约大量时间

Gson转换json数据为对象第2张

免责声明:文章转载自《Gson转换json数据为对象》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇flutter SnackBar 底部消息提示命令执行漏洞攻击&amp;amp;修复建议下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MongoDB---如何避免插入重复数据(pymongo)

以下摘自pymongo文档: update_one(filter, update, upsert=False) update_many(filter, update, upsert=False) filter: A query that matches the document to update. update: The modifications...

BUUCTF-数据包中的线索 1

打开题目里面一个pcapng的文件,于是我们拖进wireshark流量分析一波  发现有http的流量,于是我们过滤http  让后追踪http,然后发现base64的编码, 于是我们看到了base64编码    于是我们拿着base64去解密成图片,https://the-x.cn/base64   然后我们将图片下载下来,得到flag...

旋转机械故障诊断公开数据集整理

转自:https://blog.csdn.net/hustcxl/article/details/89394428 旋转机械故障诊断公开数据集整理众所周知,当下做机械故障诊断研究最基础的就是数据,再先进的方法也离不开数据的检验。笔者通过文献资料收集到如下几个比较常用的数据集并进行整理。鉴于目前尚未见比较全面的数据集整理介绍。数据来自原始研究方,笔者只整理数...

如何将txt中的数据整理到Matlab中画图

需求:我有一个如下图所示格式错乱的txt文本,现在我需要用matlab把其中的某些列画成图,具体步骤如下: 1.txt文本中的初始值整理好; 2.新建excel文件,数据-导入-选择txt文档-导入; 这里需要说明的是:excel文件必须放在MATLAB的主文件夹下,如上图所示的位置。 下面开始导入数据: 一直下一步知道完成。 3.选定排序,对B...

Hibernate、批量操作数据

Hibernate 批量操作数据可以使用两种方法实现 1、分批更新,每一小批同步一次数据: public void saveEmployee2(){ Session s=HibernateSessionFactory.getSession(); Transaction tran=s.beginTransaction(); for...

java 数据设置和显示

1. 首先设置ModelAndView 的值 @Override public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { ModelAndView mv = new Mod...