我使用 DataContractJsonSerializer 将 json 字符串解析为对象层次结构。 json 字符串如下所示:
{
"groups": [
{
"attributes": [
{
"sortOrder": "1",
"value": "A"
},
{
"sortOrder": "2",
"value": "B"
}
]
},
{
"attributes": {
"sortOrder": "1",
"value": "C"
}
}
]
}
可以看到“attributes”的子值可以是数组,也可以是单项。 我找到了问题发生的代码部分:
[DataContract]
public class ItemGroup
{
[DataMember(Name="attributes")]
public List<DetailItem> Items { get; set; }
}
这对第一个有效,但对第二个无效。
有人回答这个问题吗?
谢谢
最佳答案
如果您控制 JSON 的创建方式,请确保属性是一个数组,即使它只包含一个元素。然后第二个元素将看起来像这样并且可以正常解析。
{
"attributes": [{
"sortOrder": "1",
"value": "C"
}]
}
关于当值可以是数组或单个项目时,C# DataContractJsonSerializer 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7647651/