How to solve the issue of an extra field when converting a fastjson string to an object?

When using fastjson to convert a string to an object, you can ignore any extra fields in the string by using the @JSONField annotation with the unknown=true attribute, or by using the JSON.parseObject method with the com.alibaba.fastjson.parser.Feature.IgnoreNotMatch to ignore the extra fields.

Here is a sample code:

Imagine there is a User class:

public class User {
    private String name;
    private int age;
    // getter and setter methods
}

If there are extra fields in the string, you can use the @JSONField(unknown=true) annotation.

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
}

Alternatively, you can use the com.alibaba.fastjson.parser.Feature.IgnoreNotMatch feature of the JSON.parseObject method to ignore any extra fields.

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());
    }
}

Both methods can solve the issue of having an extra field when converting a fastjson string to an object.

Leave a Reply 0

Your email address will not be published. Required fields are marked *


广告
Closing in 10 seconds
bannerAds