java fastjson 泛型类反序列化
时间: 2023-09-09 19:09:33 浏览: 123
在Java中使用fastjson进行泛型类的反序列化,你可以按照以下步骤进行操作:
首先,确保你已经引入了fastjson的依赖,可以通过Maven等构建工具添加以下依赖项:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.79</version>
</dependency>
```
接下来,假设你有一个泛型类`Result<T>`,如下所示:
```java
import com.alibaba.fastjson.JSON;
public class Result<T> {
private int code;
private String message;
private T data;
public Result(int code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
public T getData() {
return data;
}
public static <T> Result<T> fromJson(String json, Class<T> clazz) {
return JSON.parseObject(json, new TypeReference<Result<T>>(clazz) {}.getType());
}
}
```
在上述代码中,`fromJSON`方法使用fastjson的`parseObject`方法将JSON字符串反序列化为`Result<T>`对象。
然后,你可以使用以下代码将JSON字符串反序列化为具体的泛型类对象:
```java
import com.alibaba.fastjson.JSON;
public class Main {
public static void main(String[] args) {
String json = "{\"code\":200,\"message\":\"Success\",\"data\":{\"name\":\"John\",\"age\":25}}";
Result<User> result = Result.fromJson(json, User.class);
System.out.println("Code: " + result.getCode());
System.out.println("Message: " + result.getMessage());
User user = result.getData();
System.out.println("Name: " + user.getName());
System.out.println("Age: " + user.getAge());
}
}
```
在上述代码中,我们将一个包含`User`对象的JSON字符串反序列化为`Result<User>`对象,并输出其中的字段值。
请注意,为了正确反序列化泛型类,我们需要通过传递`Class<T>`参数给`fromJSON`方法来指定具体的泛型类型。
以上就是使用fastjson进行泛型类反序列化的基本示例。当然,根据实际需求和数据结构的复杂程度,你可能需要进行更多的定制和处理。
阅读全文