You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

何种输入会导致JsonSerializer.Deserialize方法返回null值?

问题:什么样的输入会让JsonSerializer.Deserialize返回null?

场景说明:
正常JSON示例:

{
  "JsonProp1": "4ADx4ADx",
  "JsonProp2": "4AH/4ADx",
  "JsonProp3": "4AKq4ADx"
}

对应的C#实体类:

internal class JsonData
{
    public JsonData(byte[] jsonProp1 , byte[] jsonProp2 , byte[] jsonProp3) 
    {
        JsonProp1 = jsonProp1;
        JsonProp2 = jsonProp2;
        JsonProp3 = jsonProp3; 
    }
    public byte[] JsonProp1 { get; set; }

    public byte[] JsonProp2 { get; set; }

    public byte[] JsonProp3 { get; set; }
}

执行反序列化的代码:

JsonData? jsonData= JsonSerializer.Deserialize<JsonData>(InputJson);

已知规则:输入格式错误(非JSON格式)会抛出异常;输入语法正确但不兼容,会返回JsonData对象但属性为null。

会返回null的输入情况:

  • 输入JSON为显式的null值:直接传入纯文本null(是JSON原生的null类型,不是字符串"null")。此时反序列化器会直接返回null,不会尝试创建JsonData实例。

示例输入字符串:

null

这是因为JSON语法中null是合法独立值,反序列化到引用类型(JsonData是类)时,System.Text.Json会将JSON的null映射为.NET的null。


内容的提问来源于stack exchange,提问作者THE_GREAT_MARKER

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:05:19