fastjson string转对象多出一个字段怎么解决

1150
2024/1/12 21:44:25
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

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

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: fastjson反序列化漏洞怎么解决