详细讲解一下fastjson中JSON parse方法
时间: 2024-03-04 22:22:24 浏览: 193
Fastjson 中的 `JSON.parse()` 方法用于将 JSON 字符串解析为 Java 对象或者数组。该方法有多个重载形式,可以根据传入的参数类型不同返回不同的对象类型。
以下是 `JSON.parse()` 方法的几种常用形式:
1. 返回 JSONObject 对象
```java
public static JSONObject parseObject(String text);
public static JSONObject parseObject(String text, Feature... features);
public static JSONObject parseObject(String text, ParserConfig config);
public static JSONObject parseObject(String text, TypeReference<?> type, Feature... features);
```
示例:
```java
String jsonStr = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}";
JSONObject jsonObj = JSON.parseObject(jsonStr);
```
2. 返回 JSONArray 对象
```java
public static JSONArray parseArray(String text);
public static JSONArray parseArray(String text, Feature... features);
public static JSONArray parseArray(String text, ParserConfig config);
public static <T> List<T> parseArray(String text, Class<T> clazz, Feature... features);
public static <T> List<T> parseArray(String text, TypeReference<T> type, Feature... features);
```
示例:
```java
String jsonStr = "[\"apple\",\"banana\",\"orange\"]";
JSONArray jsonArray = JSON.parseArray(jsonStr);
```
3. 返回指定类型的 Java 对象
```java
public static <T> T parseObject(String text, Class<T> clazz);
public static <T> T parseObject(String text, TypeReference<T> type, Feature... features);
```
示例:
```java
String jsonStr = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}";
User user = JSON.parseObject(jsonStr, User.class);
```
其中,`User` 是一个自定义的 Java 类型。
4. 返回任意类型的 Java 对象
```java
public static <T> T parseObject(String text, Type type, Feature... features);
```
示例:
```java
String jsonStr = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}";
Type userType = new TypeReference<User>(){}.getType();
User user = JSON.parseObject(jsonStr, userType);
```
其中,`TypeReference<User>(){}.getType()` 用于获取 `User` 类型的反射对象。
以上就是 `JSON.parse()` 方法的常用形式和示例。在使用时,可以根据需要选择不同的重载形式,以便正确地解析 JSON 字符串并转换为指定的 Java 对象类型。
阅读全文