C# 将json字符串反序列化为变量

C# 将json字符串反序列化为变量,c#,json,deserialization,C#,Json,Deserialization,我得到了需要反序列化的json返回: { "odata.metadata":"http://ausmtsapp01.epicorsaas.com/SaaS203/api/v1/BaqSvc/cLotInfo/$metadata#Epicor.DynamicQuery.QueryResults&$select=PartLot_PartLotDescription,PODetail_LineDesc", "value":[ { "PartLot_Pa

我得到了需要反序列化的json返回:

{
   "odata.metadata":"http://ausmtsapp01.epicorsaas.com/SaaS203/api/v1/BaqSvc/cLotInfo/$metadata#Epicor.DynamicQuery.QueryResults&$select=PartLot_PartLotDescription,PODetail_LineDesc",
   "value":[
      {
         "PartLot_PartLotDescription":"SL1900301122019",
         "PODetail_LineDesc":"Angle - Steel - A36 - Plain Finish - 3\" x 3\" x 3/8\" x 20' Lg."
      }
   ]
}
我用这段代码将PODetail_LineDesc部分反序列化为一个变量,并不断得到null返回。我做错了什么

        dynamic jsonDe = JsonConvert.DeserializeObject(response.Content);

        string PODetail_LineDesc = jsonDe.PODetail_LineDesc;
        frmDescription.Text = PODetail_LineDesc;
这就是为什么:

string PODetail_LineDesc = jsonDe.value[0].PODetail_LineDesc;

您有一个由两个属性组成的动态对象:
odata.metadata
value
<代码>值是一个数组。因此,要访问
PODetail\u LineDesc属性
,首先需要访问
数组。这是用
值[0]
完成的,因为您只有1个元素

根据您的示例,只有一个索引为0的元素。如果有更多的元素,那么它们将有索引1、2、3等等


通常通过某种循环从数组中获取多个值<代码>对于,
foreach
是最常见的。

jsonDe.value[0]。PODetail_LineDesc
就是这样做的。你能告诉我为什么吗?如果我需要从字符串中获取多个值,我是否会不断增加[]中的数字?你有一个动态对象,它由两个属性组成:
odata.metadata
value
<代码>值是一个数组。因此,要访问
PODetail\u LineDesc
属性,您需要首先访问
数组。这是用
值[0]
完成的,因为您只有1个元素。@Mathew:是的,完全正确。根据您的示例,只有一个索引为0的元素。如果有更多,那么它们将有索引1、2、3等等。