可以通过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这种封装对象的方式,如果仅仅是取某值的话,可以采用这种方式,可以节约大量时间

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

  1. 使用Gson转换json数据为Java对象的一个例子

    记录工作中碰到的一个内容. 原料是微信平台的一个接口json数据. { "errcode" : 0, "errmsg" : "ok", &q ...

  2. Gson转换Json串为对象报java.lang.NoClassDefFoundError

    解决方法: 1.右键项目 ---> properties ----> java buildpath ---> order and export 2. 勾选 gson-x.x.x.ja ...

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

    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下   Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...

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

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. Google Gson解析Json数据应用实例

    转自:http://lixigao449778967.blog.163.com/blog/static/24985164201269105928783/ 1.需要的Jar包 1) Google Gso ...

  6. Android 利用 gson 将 json 转成 对象object 集合list

    1.build.gradle 中引入gson compile 'com.google.code.gson:gson:2.8.5' 2.将后台返回的json数据转对象.List.时间格式与后台返回的时间 ...

  7. Android中使用Gson解析JSON数据

      Android中使用Gson解析JSON数据 在Android中可以使用Gson解析JSON数据 首先,从 code.google.com/p/google-gson/downloads/list ...

  8. js声明json数据,打印json数据,遍历json数据,转换json数据为数组

    1.js声明json数据: 2.打印json数据: 3.遍历json数据: 4.转换json数据为数组; //声明JSON var json = {}; json.a = 1; //第一种赋值方式(仿 ...

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

    Gson是Google公司发布的一个开发源码的Java库,可用于将Java对象转换为JSON字符串,也可用于将JSON字符串转换为对应的Java对象.本介绍下Gson的基本使用方法,包括序列化和反序列 ...

随机推荐

  1. Count and Say leetcode java

    题目: The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 11 ...

  2. AppWidgetProvider 桌面插件 Widget 广播 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  3. 【转】vim中多标签和多窗口的使用

    原文:https://my.oschina.net/kutengshe/blog/464602 ---------------------------------------------------- ...

  4. DevExpress去除多国语言包

    DevExpress作为windows开发中较为强大的第三方组件,能极大的提高编程效率和界面效果.但也要引用它较多的dll文件,它专门有个查看dll程序集依赖的工具,在VS的工具菜单下: 在VS的工具 ...

  5. ZH奶酪:使用PHP调用REST API

    原文:http://yuguo.us/weblog/php-rest-api/ 表征状态转移(英文:REpresentational State Transfer,简称REST)是Roy Fieldi ...

  6. SQL到NoSQL概览性总结之一 数据库应用场景选型

    数据库类型与实例 适合场景 不适合场景 场景举例 关系数据库 基于集合理论,具有行和列的二维表,严格使用类型 开源MySQL/MariaDB, PostgreSQL 商业:Oracle,DB2,SQL ...

  7. ng-class ng-style

    https://docs.angularjs.org/api/ng/directive/ngClass 翻译 表达式生成一个空格饭分隔的class字符串 一个对象,它的每一个key在其值为true的时 ...

  8. TxQueryRunner-JDBC小工具

    1.TxQueryRunner的简介(需要相关jar包的请留言) TxQueryRunner类是common-dbutils下QueryRunner的子类,是用来简化JDBC操作的,所以要导入comm ...

  9. 让网络编程更轻松和有趣 t-io

    原文:https://www.oschina.net/p/t-io 注意:还是尽量去看原文,因为原文下面的评论也很有意思,可以参考大牛的讨论学习到新的东西 授权协议:Apache 开发语言:Java ...

  10. Mysql查询数据库表结构以及字段类型并展示

    1.建表语句sys_user CREATE TABLE `sys_user` ( `id` varchar(32) NOT NULL COMMENT '编号', `dept_id` varchar(3 ...