Gson版本:2.3.1
pom:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
</dependency>
1.基本用法
使用new Gson()或使用GsonBuilder.create方法创建Gson对象,然后使用toJson方法序列化或使用fromJson反序列化。
Person person = new Person();
//初始化...
Gson gson = new Gson();
gson.toJson(person);
2.TypeAdapter用法
当需要对对象属性做特殊转换时,可以使用TypeAdapter进行适配,示例如下:
NameAdapter.java
public class NameAdapter extends TypeAdapter<String> {
@Override
public void write(JsonWriter out, String value) throws IOException {
if (value != null && !"".equals(value)) {
String[] values = value.split(" ");
out.beginObject();
out.name("First Name").value(values[0]);
out.name("Last Name").value(values[1]);
out.endObject();
}
}
@Override
public String read(JsonReader in) throws IOException {
in.beginObject();
StringBuilder sb = new StringBuilder();
in.nextName();
sb.append(in.nextString()).append(" ");
in.nextName();
sb.append(in.nextString());
in.endObject();
return sb.toString();
}
}
Person.java
public class Person {
@JsonAdapter(NameAdapter.class)
private String name;
//其它属性和get、set方法省略
}
GsonTest.java
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
Person person = new Person();
person.setName("Will Smith"); // 拆分成{"First Name":"Will","Last Name":"Smith"}
person.setAge(40);
person.setCountry("America");
String json = gson.toJson(person);
System.out.println(json);
最后打印结果:{"name":{"First Name":"Will","Last Name":"Smith"},"country":"America","age":40}
3.ExclusionStrategy用法
当用户需要自定义序列化策略时,可以使用ExclusionStrategy进行定义,并在GsonBuilder创建Gson之前设置ExclusionStrategy。下面的例子是使用ExclusionStrategy实现@Ignore注解,使用该注解标注的属性不会进行序列化。
IgnoreStrategy.java
public class IgnoreStrategy implements ExclusionStrategy {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return f.getAnnotation(Ignore.class) != null;
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}
}
Ignore.java
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Ignore {
}
Person.java
public class Person {
@Ignore
private String privacy;
//其它属性和get、set方法省略
}
GsonTest.java
public static void main(String[] args) {
GsonBuilder builder = new GsonBuilder();
builder.addSerializationExclusionStrategy(new IgnoreStrategy());
Gson gson = builder.create();
Person person = new Person();
person.setName("Will Smith"); // 拆分成{"First Name":"Will","Last Name":"Smith"}
person.setAge(40);
person.setCountry("America");
person.setPrivacy("Something privacy"); // 不会被序列化
String json = gson.toJson(person);
System.out.println(json);
Person newPerson = gson.fromJson(json, Person.class);
System.out.println(newPerson);
}
输出结果:{"name":{"First Name":"Will","Last Name":"Smith"},"country":"America","age":40}
源码见附件
其它用法,待续。。。
分享到:
相关推荐
### Gson的基本使用方法 1. **添加依赖** 在项目中使用Gson,首先需要将其依赖引入到项目中。如果你使用的是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.google.code.gson</groupId> ...
要将这个用户对象转换为JSON字符串,可以使用Gson的`toJson()`方法: ```java Gson gson = new Gson(); String jsonString = gson.toJson(user); ``` `jsonString`现在包含了User对象的JSON表示。 2. JSON字符串转...
1. **Gson基本用法**: - 将Java对象转换为JSON:通过`Gson().toJson(Object obj)`方法,可以将一个Java对象转换为JSON格式的字符串。 - JSON字符串反序列化为Java对象:使用`Gson().fromJson(String json, Class...
二、Gson基本用法 1. JSON字符串转Java对象 首先,我们需要一个Java类来表示JSON数据对应的结构,例如: ```java public class User { private String name; private int age; // getters and setters } ``` ...
Gson 是 Google 推出的一款 Java 语言编写的 JSON 库,它允许开发者将 Java 对象转换成 JSON 格式的字符串,反之亦然。...通过掌握 Gson 的基本用法和注解机制,开发者可以高效地在 JSON 和 Java 类之间进行数据交换。
### Gson的基本使用 #### 序列化(对象转JSON) ```java import com.google.gson.Gson; public class User { private String name; private int age; // getters and setters... public static void main...
使用Gson的jar包进行数据格式的转换,包括单个对象,对象集合,map等等
Gson库是由Google提供的一个Java库,其主要功能是帮助开发者在Java对象和JSON数据之间进行相互转换。...这就是Gson 2.7在实际开发中的基本用法。当然,根据实际需求,你可以进一步定制和扩展Gson的功能。
使用`Gson`类的`toJson()`方法,可以将Java对象转换为JSON字符串。例如,如果有一个`Person`类,你可以这样做: ```java Gson gson = new Gson(); Person person = new Person("John", "Doe"); String json...
Gson有2个最基本的方法 1) toJson() – 转换java 对象到JSON 2) fromJson() – 转换JSON到java对象 下面是几个小例子 1. toJson() example Java 代码 收藏代码 1. class TestObjectToJson { 2. private int...
JSON(JavaScript Object Notation)是一种轻...无论选择哪个库,理解其基本用法和核心特性,都能帮助我们在实际开发中更高效地处理JSON数据。同时,了解不同库的优势和适用场景,有助于我们做出最适合项目需求的选择。
本文将深入探讨Gson库的使用方法,帮助开发者更高效地在Java中进行JSON操作。 一、Gson简介 Gson库允许将Java对象转换为JSON字符串,反之也可以将JSON文本解析为Java对象。它的设计目标是使JSON序列化和反序列化...
使用Gson,你可以通过`Gson().toJson()`方法将Java对象转化为JSON字符串,通过`new Gson().fromJson()`方法将JSON字符串反序列化为Java对象。 例如: ```java Person person = new Person("John", "Doe"); String ...
在本篇文章中,我们将深入探讨Gson库的基本用法、核心概念以及如何在项目中引入Gson库所需的jar文件。 首先,我们来了解什么是JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和...
Gson是Google开发的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。...通过理解和掌握Gson的基本用法和高级特性,开发者可以更高效地处理数据序列化和反序列化任务,提升项目的可维护性和可扩展性。
在这个例子中,`Person`类的实例被转换为JSON字符串,然后又从JSON字符串中解析回来,展示了Gson的基本用法。 总之,Gson-2.8.6.jar作为Java开发中的一个重要工具,为JSON操作提供了极大的便利,无论是简单的数据...
根据提供的代码示例,我们可以进一步分析`ConvertToJson`工具类的功能及使用方法: 1. **基本序列化方法**: - `public static String toJsonWithGson(Object obj)`: 将任意Java对象序列化为JSON字符串。 - `...
附带的“gson使用教程.pdf”提供了详细的指南,帮助开发者快速掌握Gson的用法。 Gson的核心功能包括: 1. **对象到JSON**:通过`Gson().toJson()`方法,可以将Java对象(包括基本类型、数组、集合、自定义类等)...
下面我们将详细探讨Gson的主要功能和使用方法。 1. **序列化(对象转JSON)**:Gson允许我们将Java对象转换为JSON字符串。例如,如果你有一个User类,你可以通过`Gson().toJson(user)`方法将其转换为JSON字符串。...