當使用fastjson進行字符串到對象的轉換時,如果字符串中有多出的字段,可以使用@JSONField(unknown=true)
注解來忽略多余的字段,或者使用JSON.parseObject
方法的com.alibaba.fastjson.parser.Feature.IgnoreNotMatch
來忽略多余的字段。
以下是示例代碼:
假設有一個User類:
public class User {
private String name;
private int age;
// getter and setter methods
}
如果字符串中有多余的字段,可以使用@JSONField(unknown=true)
注解:
import com.alibaba.fastjson.annotation.JSONField;
public class User {
private String name;
private int age;
@JSONField(unknown=true)
private Map<String, Object> extra; // 接收多余的字段
// getter and setter methods
}
或者使用JSON.parseObject
方法的com.alibaba.fastjson.parser.Feature.IgnoreNotMatch
來忽略多余的字段:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.Feature;
public class Main {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\",\"age\":30,\"extraField\":\"value\"}";
User user = JSON.parseObject(jsonString, User.class, Feature.IgnoreNotMatch);
System.out.println(user.getName());
System.out.println(user.getAge());
}
}
以上兩種方式都可以解決fastjson字符串轉對象時多出一個字段的問題。