Spring Boot Jackson 3 处理字符串节点时的默认值

Jackson JSON Spring Boot About 895 words

场景

当字符串节点为null时,不同的方法会导致不一样的结果

asString() vs stringValue()

asString(defaultValue)JSON的字段为null时({"a": null}),会赋值为""空字符串。

stringValue(defaultValue)JSON的字段为null时({"a": null}),会赋值为defaultValue指定的值。

源码

BaseNode

public abstract class BaseJsonNode extends JsonNode implements java.io.Serializable {

    @Override
    public String asString(String defaultValue) {
        String str = _asString();
        if (str == null) {
            return defaultValue;
        }
        return str;
    }
    
    @Override
    public String stringValue(String defaultValue) {
        // Overridden by StringNode, for other types return default
        return defaultValue;
    }

}

NullNode

public class NullNode extends ValueNode {

    @Override
    protected String _asString() {
        return "";
    }
    
    @Override
    public String stringValue(String defaultValue) { return defaultValue; }
    
}
Views: 21 · Posted: 2026-01-29

———         Thanks for Reading         ———

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓
Prev Post
Next Post
Today In History
Browsing Refresh