gson.fromJson方法作用
时间: 2023-11-29 10:04:58 浏览: 147
gson.fromJson()方法是Google Gson库中的一个方法,用于将JSON格式的字符串转换为Java对象。具体作用如下:
1. 将JSON格式的字符串转换为Java对象,例如:
```java
String json = "{\"id\":1,\"name\":\"张三\"}";
Gson gson = new Gson();
User user = gson.fromJson(json, User.class);
```
上述代码中,通过fromJson()方法将JSON格式的字符串转换为User对象,第一个参数为JSON格式的字符串,第二个参数为目标Java对象的class。
2. 将JSON格式的字符串数组转换为Java对象列表,例如:
```java
String json = "[{\"id\":1,\"name\":\"张三\"},{\"id\":2,\"name\":\"李四\"}]";
Gson gson = new Gson();
Type type = new TypeToken<List<User>>(){}.getType();
List<User> userList = gson.fromJson(json, type);
```
上述代码中,通过fromJson()方法将JSON格式的字符串数组转化为User对象列表,第一个参数为JSON格式的字符串数组,第二个参数为Type类型,可以使用TypeToken类创建Type类型。TypeToken类是Gson库提供的一个工具类,用于获取Java泛型类型的Type。
需要注意的是,在使用fromJson()方法时,要确保JSON格式的字符串和目标Java对象的属性名和类型一致,否则会抛出异常。另外,Gson库还提供了toJson()方法,用于将Java对象转换为JSON格式的字符串。例如:
```java
User user = new User();
user.setUserId(1);
user.setUserName("张三");
Gson gson = new Gson();
String json = gson.toJson(user);
System.out.println(json);
```
输出结果为:
```json
{"id":1,"name":"张三"}
```
上述代码中,通过toJson()方法将User对象转换为JSON格式的字符串。需要注意的是,toJson()方法默认不会忽略空值属性,如果需要忽略空值属性,可以在创建Gson对象时设置GsonBuilder的serializeNulls()方法。例如:
```java
User user = new User();
user.setUserId(1);
user.setUserName(null);
Gson gson = new GsonBuilder().serializeNulls().create();
String json = gson.toJson(user);
System.out.println(json);
```
输出结果为:
```json
{"id":1,"name":null}
```
可以看到,序列化后的JSON字符串中包含了空值属性。
阅读全文