簡體   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