gson语法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
gson语法
Gson 是一个 Java 库,用于将 Java 对象序列化成 JSON 字符串,或将 JSON 字符串反序列化成 Java 对象。
它可以将 Java 对象与 JSON 对象之间进行转换,以实现数据的存储和传输。
以下是一些 Gson 常用语法:
## 1. 创建 Gson 对象
创建 Gson 对象非常简单,只需调用 new Gson() 方法即可。
```java
Gson gson = new Gson();
```
## 2. 将 Java 对象转换为 JSON 字符串
```java
Person person = new Person("Tom", 20);
String json = gson.toJson(person);
```
toJson() 方法可以将指定对象转换为 JSON 字符串。
如果指定的对象是一个集合,它也可以将集合转换为 JSON 数组。
fromJson() 方法需要两个参数,第一个参数是 JSON 字符串,第二个参数是要转换成的 Java 类型。
如果 JSON 字符串表示的是一个集合,第二个参数可以是一个 Type 对象,表示集合的类型。
## 4. 设置 Gson 的序列化/反序列化行为
Gson 可以通过设置不同的序列化/反序列化行为,来满足不同的需求。
以下是一些常用的设置。
### 4.1. 配置输出格式
Gson 可以设置输出 JSON 字符串的格式,包括缩进、换行等。
使用 GsonBuilder 对象的 setPrettyPrinting() 方法可以开启缩进模式。
### 4.2. 忽略字段
Gson 可以忽略 Java 对象中的某些字段,不对它们进行序列化/反序列化。
使用
@Expose 注解可以标记哪些字段需要进行序列化/反序列化。
```java
public class Person {
@Expose
private String name;
@Expose(serialize = false, deserialize = true)
private int age;
}
```
使用 GsonBuilder 对象的 excludeFieldsWithoutExposeAnnotation() 方法可以忽略未标记 @Expose 注解的字段。
Gson 可以自定义某些类型的序列化/反序列化行为,以满足特殊的需求。
可以通过实现 JsonSerializer 或 JsonDeserializer 接口来实现自定义行为。
@Override
public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
throws JsonParseException {
try {
return dateFormat.parse(json.getAsString());
} catch (ParseException e) {
throw new JsonParseException(e);
}
}
}
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new DateAdapter()).create();
```
使用 FileWriter 对象可以将 JSON 字符串写入文件。
以上就是 Gson 的一些常用语法。
通过这些语法,我们可以很方便地操作 JSON 数据。