下面就给您详细讲解Java的JSON类库GSON的基本用法的攻略。
什么是GSON
GSON是Google开发的用于Java解析JSON数据的类库。它可以将一个JSON字符串转化成Java对象,同样也可以将Java对象转化成对应的JSON字符串。GSON可以编码和解码任何Java对象。
导入GSON的Jar包
在使用GSON之前,我们需要先在项目中导入GSON的Jar包。
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
Gson的基本用法
1. 将JSON字符串转化为Java对象
String jsonStr = "{\"name\":\"Jay\",\"age\":20}";
Gson gson = new Gson();
Person person = gson.fromJson(jsonStr, Person.class);
说明:
- 将JSON字符串
{"name":"Jay","age":20}
转化为Java对象Person
- 可以使用泛型
TypeToken
将 JSON 转为复杂类型List<Person>
2. 将Java对象转化为JSON字符串
Person person = new Person("Jay", 20);
Gson gson = new Gson();
String jsonStr = gson.toJson(person);
说明:
- 将Java对象
Person
转化为JSON字符串{"name":"Jay","age":20}
3. 嵌套引用
在JSON字符串中,我们经常会遇到嵌套引用的情况。在Java对象中,我们可以使用 List,Map 等对象进行嵌套。
{
"name": "Jay",
"age": 20,
"hobbies": [
{
"name": "Swimming"
},
{
"name": "Reading"
}
]
}
class Person {
String name;
int age;
List<Hobby> hobbies;
class Hobby {
String name;
}
// Getters and Setters ...
}
String jsonStr = "{\"name\":\"Jay\",\"age\":20,\"hobbies\":[{\"name\":\"Swimming\"},{\"name\":\"Reading\"}]}";
Gson gson = new Gson();
Person person = gson.fromJson(jsonStr, Person.class);
说明:
- JSON字符串中
hobies
是一个列表对象,每一个元素也是一个对象 - Java对象也通过列表对象
List
类型与内部对象Hobby
组织了同样的结构
4. Gson注意事项
在使用Gson解析JSON时,需要注意以下几点:
- Java对象属性名和JSON属性名必须保持一致
- 对于嵌套引用的JSON,需要在Java对象中保持一致的结构
- 对于JSON中的空值,可以设置为
null
或省略该属性 - 对于JSON中未定义的属性,可以设置为
transient
或使用@SerializedName
注解
总结
GSON是Google开源的一个JSON解析器,它可以将JSON字符串转换为Java对象,也可以将Java对象转换为Json字符串。在JSON和Java对象之间相互转换的过程中,请保证对象属性名和JSON属性名保持一致,对象结构与JSON中的引用结构保持一致即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:举例讲解Java的JSON类库GSON的基本用法 - Python技术站