Fastjson 是一个用于 Java 的高性能 JSON 解析库,支持复杂类型的方式包括:
String json = "[{\"name\":\"Alice\",\"age\":20},{\"name\":\"Bob\",\"age\":25}]";
List<Person> personList = JSON.parseObject(json, new TypeReference<List<Person>>(){});
String json = "{\"name\":\"Alice\",\"address\":{\"city\":\"New York\",\"zip\":\"10001\"}}";
User user = JSON.parseObject(json, User.class);
public class UserDeserializer implements ObjectDeserializer {
@Override
public <T> T deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
JSONObject jsonObject = parser.parseObject();
User user = new User();
user.setName(jsonObject.getString("name"));
user.setAddress(jsonObject.getObject("address", Address.class));
return (T) user;
}
@Override
public int getFastMatchToken() {
return JSONToken.LBRACE;
}
}
ParserConfig.getGlobalInstance().putDeserializer(User.class, new UserDeserializer());
通过这些方式,Fastjson 可以支持解析复杂类型的 JSON 数据。