JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,易于閱讀和編寫,適用于網絡傳輸。Java中常用的JSON解析器有很多,如Gson、Jackson等。本文主要介紹基于Gson庫的JSON解析工具類。
我們可以從Maven倉庫中導入Gson庫,例如:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
以下是一個基于Gson的JSON解析工具類:
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.List;
public final class JsonUtil {
private JsonUtil() {}
private static final Gson gson = new Gson();
public static <T> T fromJson(String json, Class<T> classOfT) {
return gson.fromJson(json, classOfT);
}
public static <T> List<T> fromJsonList(String json, Class<T> classOfT) {
Type listType = TypeToken.getParameterized(List.class, classOfT).getType();
return gson.fromJson(json, listType);
}
public static String toJson(Object src) {
return gson.toJson(src);
}
}
該工具類提供了三個靜態方法,分別用于將JSON字符串解析成Java對象,將JSON數組解析成Java List集合,將Java對象轉換為JSON字符串。
通過調用fromJson方法,我們可以將一個JSON字符串轉換為指定類型的Java對象,例如:
String json = "{\"name\":\"Tom\",\"age\":18}";
Person person = JsonUtil.fromJson(json, Person.class);
調用fromJsonList方法,我們可以將一個JSON數組轉換為指定類型的Java List集合,例如:
String json = "[{\"name\":\"Tom\",\"age\":18},{\"name\":\"Jerry\",\"age\":20}]";
List<Person> personList = JsonUtil.fromJsonList(json, Person.class);
最后,我們可以通過調用toJson方法,將一個Java對象轉換成JSON字符串,例如:
Person person = new Person("Tom", 18);
String json = JsonUtil.toJson(person);
以上就是一個基于Gson的JSON解析工具類的實現,可以方便地將JSON字符串轉換為Java對象或Java List集合,也可以將Java對象轉換成JSON字符串。