Android利用Gson解析Json数据
其实,要创建和解析JSON数据,也可以使用GSON来完成。GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。使用GSON,可以很容易的将一串JSON数据转换为一个Java对象,或是将一个Java对象转换为相应的JSON数据。
GSON的两个重要方法
在GSON的API中,提供了两个重要的方法:toJson()和fromJson()方法。其中,toJson()方法用来实现将Java对象转换为相应的JSON数据,fromJson()方法则用来实现将JSON数据转换为相应的Java对象。
toJson()方法
toJson()方法用于将Java对象转换为相应的JSON数据,主要有以下几种形式:
(1)String toJson(JsonElement jsonElement);
(2)String toJson(Object src);
(3)String toJson(Object src, Type typeOfSrc);
其中,方法(1)用于将JsonElement对象(可以是JsonObject、JsonArray等)转换成JSON数据;方法(2)用于将指定的Object对象序列化成相应的JSON数据;方法(3)用于将指定的Object对象(可以包括泛型类型)序列化成相应的JSON数据。
fromJson()方法
fromJson()方法用于将JSON数据转换为相应的Java对象,主要有以下几种形式:
(1)<T> T fromJson(JsonElement json, Class<T> classOfT);
(2)<T> T fromJson(JsonElement json, Type typeOfT);
(3)<T> T fromJson(JsonReader reader, Type typeOfT);
(4)<T> T fromJson(Reader reader, Class<T> classOfT);
(5)<T> T fromJson(Reader reader, Type typeOfT);
(6)<T> T fromJson(String json, Class<T> classOfT);
(7)<T> T fromJson(String json, Type typeOfT);
以上的方法用于将不同形式的JSON数据解析成Java对象。
下面为具体的演示:
String json = {"a":"100","b":[{"b1":"b_value1","b2":"b_value2"},{"b1":"b_value1","b2":"b_value2"}],"c":{"c1":"c_value1","c2":"c_value2"}}
首先我们需要定义一个序列化的Bean,这里采用内部类的形式,看起来会比较清晰一些:
public class JsonBean {
public String a;
public List<B> b;
public C c;
public static class B {
public String b1;
public String b2;
}
public static class C {
public String c1;
public String c2;
}
}
很多时候大家都是不知道这个Bean是该怎么定义,这里面需要注意几点:
1、内部嵌套的类必须是static的,要不然解析会出错;
2、类里面的属性名必须跟Json字段里面的Key是一模一样的;
3、内部嵌套的用[]括起来的部分是一个List,所以定义为 public List<B> b,而只用{}嵌套的就定义为 public C c,
具体的大家对照Json字符串看看就明白了,不明白的我们可以互相交流,本人也是开发新手!
Gson gson = new Gson();
java.lang.reflect.Type type = new TypeToken<JsonBean>() {}.getType();
JsonBean jsonBean = gson.fromJson(json, type);
然后想拿数据就很简单啦,直接在jsonBean里面取就可以了!
Android利用Gson解析Json数据相关推荐
- Android中Gson解析json数据使用@SerializedName注解
@SerializedName 此注解作用在属性上,表明这个属性在序列化成Json的时候,需要将名字序列化成注解的value属性指定的值. 我们有一段json数据如下: { "id" ...
- gson解析php,php,android_关于 Gson 解析JSON数据。。。,php,android - phpStudy
关于 Gson 解析JSON数据... 1.首先,我是从服务器端传回来的JSON数据如下: {"info":"succeed","user_id&qu ...
- Okhttp源码分析以及Google Gson解析json数据实例
Okhttp Github的Okhttp OkHttp是一个高效的HTTP客户端,它有以下默认特性: 支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接 透明的GZIP压缩减少响 ...
- JSONObject 和 GSON 解析 JSON 数据详解(转)
转载:http://www.jianshu.com/p/f99de3ec0636 点此进入:从零快速构建APP系列目录导图 点此进入:UI编程系列目录导图 点此进入:四大组件系列目录导图 点此进入:数 ...
- Android之GSON解析JSON
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库. 比如: <pre name="code" class=" ...
- Gson解析JSON数据中动态未知字段key的方法
转载自:https://blog.csdn.net/jdsjlzx/article/details/76785239 有时在解析json数据中的字段key是动态可变的时候,由于Gson是使用静态注解的 ...
- Android用GSon处理Json数据
此篇接上篇 Android访问WCF(下篇)-客户端开发 将服务器获取的JSON数据通过GSON这个类库, 进行反序列化, 并通过UI显示出来. 如何在Android平台上用GSON反序列化JSON数 ...
- Android 使用Gson解析json用法
目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https://co ...
- Android 使用Gson解析json案例详解
一.目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https:// ...
最新文章
- 【剑指offer-Java版】23从上往下打印二叉树
- html标题怎么分开,html – 如何使用angularjs将标签标题与其主体分开?
- springboot 入门二- 读取配置信息一
- 2021-2025年中国中压额定母线槽行业市场供需与战略研究报告
- Python 学习笔记 - 协程
- 活动推荐 | 首届云原生编程挑战赛开始报名啦~
- 纯HTML个人简历模板代码
- 修改数据库密码的多种方法
- mui android 模拟器,MUI框架-07-HBuilder+夜神安卓模拟器
- Redis:只刷面试题,怎可能进大厂,多理解原理(RDB 持久化、AOF持久化)
- 数据产品经理该懂的python技术
- EWASM Gas Costs——gas 计算
- LeetCode 299猜数字游戏
- ADC模数转换器(STM32系列)
- 现代化医院PACS/RIS系统概述
- css3探测光圈_CSS3按钮鼠标悬浮实现光圈效果
- 汽车中控linux系统,特斯拉的中控系统为什么是Linux而不是Android?
- Service id not legal hostname (service_cmn)
- 编码通信与魔术初步(七)——二进制编码经典魔术《街头猜数字》
- 欧氏距离与曼哈顿距离
热门文章
- win11怎么连接共享打印机进行打印
- 支持多种格式转换的PDF转换成PPT转换器
- 常用存储设备优缺点辨析
- python psycopg2_Python:使用psycopg2模块操作PostgreSQL
- 2022祥云杯---Crypto
- mac os 和iphone、ipad 设备死机分析
- 郑州挺住!计算机视觉“为“雨绸缪(附溺水检测论文)
- python 网易公开课官网_哪里有python视频教程全集下载?
- NetworkSecurity
- 《Contrast Limited Adaptive Histogram Equalization》自译