簡體   English   中英

JSON反序列化后的空子數據結構

[英]Null child data structures after JSON deserialization

我有一個對象,該對象的屬性是其他自定義對象的列表。 它實際上鑽取了自定義對象屬性的許多層,但讓我們僅看一下對象的最后3個級別。

{
    "version" : {
        "version_data" : [ {
            "version_value" : "6.06"
        }, {
            "version_value" : "7.10"
        }, {
            "version_value" : "8.04"
        }, {
            "version_value" : "8.10"
        } ]
    }
}

所以我的課程看起來像這樣:

public class Version
{
    [Required()]
    public Version_Data version_data { get; set; }
}
public class Version_Data
{
    [MinLength(1)]
    public List<Version_Data_Item> items { get; set; }
}
public class Version_Data_Item
{
    [Required()]
    public string version_value { get; set; }
}

我能夠提取一個version_data_item

{
     "version_value" : "6.06"
}

如果我反序列化該JSON,則可以調用以下代碼: deserializedObject.version_value ,它返回6.06

我遇到的問題是高層。 例如,然后從數據中提取“ Version_Data”對象

{
    "version_data" : [ {
        "version_value" : "6.06"
    }, {
        "version_value" : "7.10"
    }, {
        "version_value" : "8.04"
    }, {
        "version_value" : "8.10"
    } ]
}

反序列化為Version_Data(至少沒有引發異常),但是當我調試它時,該列表為null

在此處輸入圖片說明

我想念什么?

您的version_data應該稱為items:

{
    "items" : [ {
        "version_value" : "6.06"
    }, {
        "version_value" : "7.10"
    }, {
        "version_value" : "8.04"
    }, {
        "version_value" : "8.10"
    } ]
}

為了從JSON生成C#,您可以使用非常有用的Web 生成器

您的正確模型在這里:

public class VersionData
{
    public string version_value { get; set; }
}

public class Version
{
    public List<VersionData> version_data { get; set; }
}

public class RootObject
{
    public Version version { get; set; }
}

您正在使用Newtonsoft的JSON嗎? 該結構看起來不正確。 除非您使用自定義解析器,否則結構應如下所示: https : //app.quicktype.io?share=Olvtc5B3C1zg7hy2CJgp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM