FastJson根据泛型格式化数据
fastJSON是一个用Java语言编写的高性能功能完善的JSON库。在Java中,泛型是一种复杂的特性,因为它在运行时会被擦除。但是,fastJSON提供了一些方法来处理泛型。
解决方案1:使用TypeReference
TypeReference是fastJSON提供的一个工具类,用于在解析时保留泛型的类型信息。
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import java.util.List;
public class Main {
public static void main(String[] args) {
String jsonString = "[{\"name\":\"John Doe\"}, {\"name\":\"Jane Doe\"}]";
List<Person> people = JSON.parseObject(jsonString, new TypeReference<List<Person>>(){});
for (Person person : people) {
System.out.println(person.getName());
}
}
}
class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
解决方案2:使用parseObject方法
parseObject方法可以将JSON字符串解析为指定的泛型类型。
import com.alibaba.fastjson.JSON;
import java.util.List;
public class Main {
public static void main(String[] args) {
String jsonString = "[{\"name\":\"John Doe\"}, {\"name\":\"Jane Doe\"}]";
List<Person> people = JSON.parseObject(jsonString, List.class).newInstance(Person.class);
for (Person person : people) {
System.out.println(person.getName());
}
}
}
class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
注意:在使用fastJSON处理泛型时,确保你的类(在这个例子中是Person类)有一个默认的无参构造函数,否则fastJSON将无法创建实例。