Json数据交换一Gson
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
添加依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
</dependency>
Gson的基本用法
基本数据类型的解析(String解析成其他类型)
Gson gson = new Gson();
int i = gson.fromJson("100", int.class); //100
double d = gson.fromJson("\"99.99\"", double.class); //99.99
boolean b = gson.fromJson("true", boolean.class); // true
String str = gson.fromJson("String", String.class); // String
基本数据类型的生成
Gson gson = new Gson();
String jsonNumber = gson.toJson(100); // 100
String jsonBoolean = gson.toJson(false); // false
String jsonString = gson.toJson("String"); //"String"
POJO类生成JSON
Gson gson = new Gson();
User user = new User("毛驴哥",24);
String jsonObject = gson.toJson(user); // {"name":"毛驴哥","age":24}
POJO类解析JSON
Gson gson = new Gson();
String jsonString = "{\"name\":\"毛驴哥\",\"age\":24}";
User user = gson.fromJson(jsonString, User.class);
属性重命名 @SerializedName 注解的使用
json的email_address就可以对应属性名emailAddress
@SerializedName("email_address")
public String emailAddress;
SerializedName注解提供了两个属性,上面用到了其中一个,别外还有一个属性alternate,接收一个String数组。
@SerializedName(value = "emailAddress", alternate = {"email", "email_address"})
public String emailAddress;
三个属性(email_address、email、emailAddress)中出现任意一个时均可以得到正确的结果。
Gson中使用泛型
对于Java来说List 和List 这俩个的字节码文件只一个那就是List.class,这是Java泛型使用时要注意的问题 泛型擦除。
为了解决的上面的问题,Gson为我们提供了TypeToken来实现对泛型的支持
Gson gson = new Gson();
String jsonArray = "[\"Android\",\"Java\",\"PHP\"]";
String[] strings = gson.fromJson(jsonArray, String[].class); //直接改为 List<String>.class 是行不通
List<String> stringList = gson.fromJson(jsonArray, new TypeToken<List<String>>() {}.getType());
注:TypeToken的构造方法是protected修饰的,所以上面才会写成new TypeToken<List>() {}.getType() 而不是 new TypeToken<List>().getType()
Json数据交换一Gson的更多相关文章
- JSON数据解析(GSON方式) (转)
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 在上一篇博文<Andro ...
- 截取HTML中的JSON数据并利用GSON进行解析(Android)
截取HTML中的JSON数据并利用GSON进行解析(Android) 前言 最近在做的一个Android项目,需要自行搭建服务器,队友选择买了阿里云的服务器ESC产品,在数据获取上,我们采用了Andr ...
- Android JSON数据解析(GSON方式)
要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个Jav ...
- Js中JSON数据交换使用总结
Json格式简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是JavaScript原 ...
- json 数据交换格式与java
http://wiki.mbalib.com/wiki/数据交换 数据交换是指为了满足不同信息系统之间数据资源的共享需要,依据一定的原则,采取相应的技术,实现不同信息系统之间数据资源共享的过程. 数据 ...
- JSON数据解析:Gson(谷歌)和fastjson(阿里巴巴)的异同点
Gson和fastjson分别为谷歌和阿里巴巴对JSON数据进行处理封装的jar包 Gson(谷歌)和fastjson(阿里巴巴)两者异同点: 相同点:都是根据JSON数据创建相应的类 不同点: 1. ...
- JSON数据解析及gson.jar包
从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送. 服务器端的编程语言只能以如下 3 种格式返回数据: HTML XML JSON JSON一种简单的数据格式,比xml更轻巧. JS ...
- iOS 中 JSON 数据交换格式
JSON (JavaScript Object Notation)是一种轻量级的数据交换格式. JSON 的详细教程,能够參见 JSON 中国:http://www.json.org.cn/ ...
- json数据交换
1.1 为什么要进行json数据交互 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据. 1.2 s ...
随机推荐
- NFS(网络文件系统)
NFS(网络文件系统) 1.关于NFS介绍 1.1NFS在企业中的应用场景 在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频,图片,附件等静态资源文件,通常网站用户上传的文件都会放 ...
- vCenter 6.0 如何用client登录
使用Vmware client 输入vCenter的IP地址 然后用户名使用administrator@vsphere.local 再输入密码,即可登录vCenter了. web端也是一样,但是我遇 ...
- ORA-01000 error
ORA-01000是最大开放游标错误,是Oracle数据库开发中极为常见的错误. 在Java的上下文中,当应用程序尝试打开更多ResultSet而不是数据库实例上的已配置游标时,会发生这种情况. 解决 ...
- linux中的read_link
readlink是linux系统中一个常用工具,主要用来找出符号链接所指向的位置. readlink 获取当前进程对应proc/self/exe]:shell中 readlink /proc/sel ...
- mongodb的学习 (2)
1.条件查询 查询姓名为小明的学生 db.local.find({name:'小明'});; 查询英语成绩大于90分的同学 ...
- elasticsearch依赖的jackson-jar包与jboss依赖的jackson-jar包“版本”冲突
elasticsearch依赖的jackson-jar包与jboss依赖的jackson-jar包“版本”冲突,导致elasticsearch相关功能在本地tomcat服务器正常,但是部署到jboss ...
- Python查看文件属性
import os print(os.stat('my_module.py')) 输出: os.stat_result(st_mode=33188, st_ino=7348222, st_dev=16 ...
- Delphi 消息函数 SendMessage函数
Delphi中SendMessage使用说明 SendMessage基础知识 函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.而函数Po ...
- java-逻辑处理
类名是ItemDAO package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.s ...
- json类型的相互转化
package com.test.jsontest; import java.io.File; import java.io.FileInputStream; import java.io.FileN ...