繁体   English   中英

JSON 如何在反序列化过程中忽略丢失的对象

[英]JSON how to ignore missing object during deserialization

我有一个示例 JSON,当我反序列化时,我得到“对象引用未设置为对象的实例”,因为我发现有时该字段丢失然后它会再次出现。

json 与此类似

{
    "title": "Example",
    "type": "object",
    "properties": {
        "firstName": {
            "type": "string"
        },
        "lastName": {
            "type": "string"
        },
        "age": {
            "description": "Age in years",
            "type": "integer",
            "minimum": 0
        }
    }

}

如果我反序列化它并将其映射到相应的字段,结果就可以了

但如果例如缺少“年龄”

{
    "title": "Example",
    "type": "object",
    "properties": {
        "firstName": {
            "type": "string"
        },
        "lastName": {
            "type": "string"
        },
    },
    "required": ["firstName", "lastName"]
}

它会抛出一个错误“对象引用未设置为对象的实例”如果它在 JSON 中丢失,我如何忽略年龄?


当你说你使用 json.net 时更新

我会说 Json.net 有设置试试下面

JsonSerializerSettings.NullValueHandling = NullValueHandling.Ignore

如果它是真正的 POCO 对象,我检查那里是否有任何属性为 null,然后我分配了空白对象。 喜欢

if(MyObject.Properties.Age==null)
{
   MyObject.Properties.Age = new Age();
}

然后反序列化它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM