Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。
网站首页 > 开源技术 正文
1 基础用法toJson
toJason()方法将对象转换成Json字符串
Gson gson = new Gson();
List persons = new ArrayList();
String str = gson.toJson(persons);
2 基础用法:fromJson()
Gson提供了fromJson()方法来实现从Json字符串转化为到java实体的方法。
比如json字符串为:[{“name”:”name0”,”age”:0}]
Person person = gson.fromJson(str, Person.class);
提供两个参数,分别是json字符串以及需要转换对象的类型。
3 避免Unicode转义
例如:
{"s":"\u003c"}
我只想简单的打印成这样
{"s":"<"}
解决方案:
只需要 disable HTML escaping.
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
4 排除某些字段
如果一个类A中含有字段field1,它的父类也含有字段field1,那么A对象toJson的时候,就会发生declares multiple JSON fields named field1。
解决方案1:在类A中去掉字段filed1.
解决方案2:使用Json的@Expose注解
将A类MessageText中需要打印的字段filed1加上注解@Expose 。那么父类中没有加注解的field1就会被排除掉。
Gson g = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
5 换属性名字
public class SomeClassWithFields {
@SerializedName("name") private final String someField;
private final String someOtherField;
public SomeClassWithFields(String a, String b) {
this.someField = a;
this.someOtherField = b;
}
}
SomeClassWithFields objectToSerialize = new SomeClassWithFields("a", "b");
Gson gson = new Gson();
String jsonRepresentation = gson.toJson(objectToSerialize);
System.out.println(jsonRepresentation);
===== OUTPUT =====
{"name":"a","someOtherField":"b"}
6 加版本号
public class User {
private String firstName;
private String lastName;
@Since(1.0) private String emailAddress;
@Since(1.0) private String password;
@Since(1.1) private Address address;
}
7 泛型的用法
HashMap<String, Book> booksMap = gson.fromJson(result, new TypeToken<HashMap<String, Book>>() { }.getType());
猜你喜欢
- 2024-09-30 设计模式学习笔记:原型模式以及深浅拷贝的区别
- 2024-09-30 金三银四涨薪计划Java不懂这些核心技能,还想去大厂?
- 2024-09-30 我赌你不懂系列:序列化是什么(序列化的概念)
- 2024-09-30 使用MVP+RxJava+Retrofit框架(mvp retrofit rxjava)
- 2024-09-30 Java开发必须要掌握的20个核心技术,你掌握了多少?
- 2024-09-30 Android 上的序列化和反序列化(序列化和反序列化使用场景)
- 2024-09-30 114、mvc各部分;反射一般场景(反射setaccessible)
- 2024-09-27 # Kafka_深入探秘者(8):kafka 高级应用--2
- 2024-09-27 # Kafka_深入探秘者(8):kafka 高级应用--1
- 2024-09-27 为什么强烈禁止开发人员使用isSuccess作为变量名
本文暂时没有评论,来添加一个吧(●'◡'●)