net6 使用 System.Text.json 转换null 为空字符串

国外网站大佬解决了传送门c# - System.Text.Json Serialize null strings into empty strings globally - Stack Overflow

public class EmptyStringConverter : JsonConverter<string>
{
    public override bool HandleNull => true;
    
    public override string Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        => reader.TokenType == JsonTokenType.Null ? "" : reader.GetString();

    public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options) =>
        writer.WriteStringValue(value ?? "");
}
`JSON.parseObject` 方法是Java中Jackson库提供的一个方法,用于将JSON字符串解析为Java对象。如果在解析过程中遇到JSON字符串中某些值是空字符串(""),默认情况下,Jackson会将这些空字符串转换为Java中的null值。 这种转换是基于Jackson的序列化特性,默认的`ObjectMapper`配置会处理空字符串null值之间的转换。你可以通过自定义`ObjectMapper`的反序列化特性来改变这一行为,例如,你可以注册一个自定义的反序列化器来确保空字符串不被转换null。 以下是一个简单的示例代码,展示了如何在使用Jackson进行解析时,确保空字符串不会被转换null: ```java import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import java.util.Map; public class JsonParserExample { public static void main(String[] args) throws Exception { String jsonString = "{\"key\":\"\"}"; ObjectMapper objectMapper = new ObjectMapper(); // 使用TypeReference来指定解析后的对象类型 Map<String, String> map = objectMapper.readValue(jsonString, new TypeReference<Map<String, String>>() {}); System.out.println(map.get("key")); // 输出: 空字符串 } } ``` 在这个例子中,我们创建了一个包含空字符串值的JSON字符串,然后使用Jackson的`ObjectMapper`进行解析,并将其转换为一个`Map<String, String>`。由于我们指定了具体的类型`String`,因此即使JSON中的值是空字符串,它也会被解析为Java中的空字符串(""),而不是null
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值