Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C DataContractJsonSerializer解析JSON命名数组_C#_Arrays_Json_Serialization_Datamember - Fatal编程技术网

C# 使用C DataContractJsonSerializer解析JSON命名数组

C# 使用C DataContractJsonSerializer解析JSON命名数组,c#,arrays,json,serialization,datamember,C#,Arrays,Json,Serialization,Datamember,如何使用DataContractJsonSerializer解析没有固定名称的JSON数组?假设JSON结构如下所示: { "SUMMARY": { "0123": [ { "Type": "Type_A", "Duration": 100 } ] } } [DataContract] public class numberedStruct { [DataMember(Name = "Type")] p

如何使用DataContractJsonSerializer解析没有固定名称的JSON数组?假设JSON结构如下所示:

{
 "SUMMARY":
 {
    "0123":
    [
    {
       "Type": "Type_A",
       "Duration": 100
    }
    ]
 }
}
[DataContract]
public class numberedStruct {

    [DataMember(Name = "Type")]
    public string Type {get; set;}

    [DataMember(Name = "Duration")]
    public int Duration{get; set;}
}

[DataContract]
public class summaryStruct {

    [DataMember(Name = "0123")]
    public numberedStruct[] s;

}
在C中,我可以初始化两个数据对象,如下所示,使用DataContractJsonSerializer解析它们,如下所示:

{
 "SUMMARY":
 {
    "0123":
    [
    {
       "Type": "Type_A",
       "Duration": 100
    }
    ]
 }
}
[DataContract]
public class numberedStruct {

    [DataMember(Name = "Type")]
    public string Type {get; set;}

    [DataMember(Name = "Duration")]
    public int Duration{get; set;}
}

[DataContract]
public class summaryStruct {

    [DataMember(Name = "0123")]
    public numberedStruct[] s;

}
然而,如果0123也是一个变量,它可以是其他变量呢?因此,我无法将DataMember名称修复为0123


如何获取0123作为变量以及C中结构中的内容?

您可以尝试将奇怪的变量名称与[JsonExtensionData]一起放入字典中


这将包含在响应对象中。

根据情况,0123的结构相同,并且在结构中的位置始终相同?变量名不能是c中的数字。感谢您的评论。0123只是一个例子。实际上,它不是变量的名称,而是实际情况下变量的值,所以它可以是abcd或defg。我不知道如何解析这种类型的结构,因为它没有静态变量名。嗨,ANewGuylnTown,谢谢你的建议。你能详细告诉我密码吗。我尝试了下面的结构,但它仍然为我返回空值。[DataContract]公共类summaryStruct{[JsonExtensionData]公共IDictionary s;}非常感谢。它不起作用了。为了获得它,我还必须使用Newtonsoft.Json.JsonConvert中提供的序列化/反序列化函数。使用.NET默认DataContractJsonSerializer将无法工作。