阅读量:2
当使用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字符串转对象时多出一个字段的问题。