在C#中反序列化嵌套数组JSON返回空值

Mujno

使用newtonSoft JSON反序列化JSON时,我得到的返回值为空值。这是我的JSON:

        {"odata.metadata":"https://graph.abc.com/testapi",
    "value":
    [{"capabilityStatus":"Enabled",
    "consumedUnits":2,
    "objectId":"c9992e5ef110_6fd2c87-1e91e994b900",
    "prepaidUnits":{"enabled":25,"suspended":0,"warning":0},
    "servicePlans":
    [{"servicePlanId":"4ccb","servicePlanName":"YAMMER_ENTERPRISE"},
    {"servicePlanId":"bea4","servicePlanName":"RMS_S_ENTERPRISE"},
    {"servicePlanId":"43de","servicePlanName":"OFFICESUBSCRIPTION"},
    {"servicePlanId":"0fea","servicePlanName":"MCOSTANDARD"},
    {"servicePlanId":"e95be","servicePlanName":"SHAREPOINTWAC"},
    {"servicePlanId":"5dbe","servicePlanName":"SHAREPOINTENTERPRISE"},
    {"servicePlanId":"efb8","servicePlanName":"EXCHANGE_S_ENTERPRISE"}],
    "skuId":"42f0-b197",
    "skuPartNumber":"ENTERPRISEPACK"}]}  

这是我的课程:

    public class PrepaidUnits
            {
            public int enabled { get; set; }
            public int suspended { get; set; }
            public int warning { get; set; }
            }

            public class ServicePlan
            {
            public string servicePlanId { get; set; }
            public string servicePlanName { get; set; }
            }

            public class Value
            {
            public string capabilityStatus { get; set; }
            public int consumedUnits { get; set; }
            public string objectId { get; set; }
            public PrepaidUnits prepaidUnits { get; set; }
            public List<ServicePlan> servicePlans { get; set; }
            public string skuId { get; set; }
            public string skuPartNumber { get; set; }
            }

            public class Graphdata
            {
            public string odata_metadata { get; set; }
            public List<Value> value { get; set; }
            }  

因此,这里的问题是,当我使用以下语句反序列化时,返回的servicePlanId和servicePlanName为空值。我在这里做错了什么?

        var graphAPIDataDeserialized = JsonConvert.DeserializeObject<ServicePlan>(graphResult);  

但是,当我使用Graphdata类时,我可以在JSON响应中看到所有值:

       var graphAPIDataDeserialized = JsonConvert.DeserializeObject<Graphdata>(graphResult);  

在此先感谢您的帮助!

脱衣战士

这是任何JSON解析器的预期行为。您提供的字符串应该表示您要从中获取的对象,因此当您说:

JsonConvert.DeserializeObject<ServicePlan>(graphResult)

...指示它将图形结果反序列化为ServicePlan对象。它会创建一个ServicePlan,查看您赋予它的对象(“图形结果”),找不到名为的属性servicePlanId,等等,因此它不会在这些属性上设置任何值。

如果您尝试创建一个ServicePlan,则需要向其传递更像的字符串值{"servicePlanId":"4ccb","servicePlanName":"YAMMER_ENTERPRISE"}

另一方面,如果您试图从反序列化的图形结果中获取ServicePlans,则可以说:

JsonConvert.DeserializeObject<Graphdata>(text).value[0].servicePlans

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C#中反序列化嵌套的JSON数组

来自分类Dev

使用没有属性名称的嵌套数组反序列化 JSON C#

来自分类Dev

在 C# 中反序列化 JSON 值数组

来自分类Dev

为什么在C#中反序列化我的packages.config返回空值?

来自分类Dev

C#反序列化嵌套的Json返回null

来自分类Dev

如何使用Newtonsoft.Json在C#中使用嵌套数组反序列化json

来自分类Dev

使用嵌套数组反序列化JSON以从值生成字符串

来自分类Dev

反序列化返回空对象C#

来自分类Dev

在C#中反序列化嵌套JSON数组的问题

来自分类Dev

在C#中反序列化嵌套JSON数组的问题

来自分类Dev

在C#中反序列化JSON:对象与数组

来自分类Dev

在C#中反序列化JSON:对象与数组

来自分类Dev

在C#中反序列化JSON数组

来自分类Dev

使用System.Text.Json反序列化数组json对象的嵌套数组

来自分类Dev

使用GSON反序列化嵌套数组

来自分类Dev

RavenDB:反序列化嵌套数组

来自分类Dev

反序列化JSON返回null C#

来自分类Dev

从protobuf反序列化json对象返回空

来自分类Dev

C#:“无法反序列化当前JSON数组”

来自分类Dev

使用数组中的空值反序列化JSON

来自分类Dev

为嵌套API在C#中反序列化json

来自分类Dev

使用C#中的嵌套类反序列化JSON。在哪里创建对象实例?

来自分类Dev

在AWS Lambda(C#)中反序列化嵌套的JSON字符串

来自分类Dev

json字符串的反序列化返回空值

来自分类Dev

使用C#从JSON反序列化值列表

来自分类Dev

C#在JSON中反序列化JSON

来自分类Dev

将XML反序列化为C#对象,返回空值

来自分类Dev

在 C# 中反序列化 (.net json) 或序列化 (XmlSerializer) 期间填充 NULL 值

来自分类Dev

当返回数据集未知时,在C#中反序列化JSON

Related 相关文章

热门标签

归档