【发布时间】:2016-11-13 14:15:53
【问题描述】:
我有一个这样的示例 json:
{"'1234xxxxxx'":[{"AttributeId":"1","AttributeName":"Brand","AttributeValue":""},{"AttributeId":"2","AttributeName":"Color","AttributeValue":"Red4"},{"AttributeId":"3","AttributeName":"Size","AttributeValue":"44"},{"AttributeId":"4","AttributeName":"Resolution","AttributeValue":"Full HD"}]}
我已经创建了一个这样的示例 DataContract 类:
[System.Runtime.Serialization.DataContract]
public class Rootobject
{
[System.Runtime.Serialization.DataMember]
public attr[] attrs { get; set; }
}
[System.Runtime.Serialization.DataContract]
public class attr
{
[System.Runtime.Serialization.DataMember]
public string AttributeId { get; set; }
[System.Runtime.Serialization.DataMember]
public string AttributeName { get; set; }
[System.Runtime.Serialization.DataMember]
public string AttributeValue { get; set; }
}
现在,我想使用 DataContractJsonSerializer 和 memorystream 访问属性,但问题是我的 json 中的键 '1234xxxxxx' 每次都是动态生成的。那么我应该如何访问我的 c# 代码中的属性呢?
【问题讨论】:
-
DataContractJsonSerializer对您来说是硬性要求吗?你不能使用 Json.NET 吗? -
你可以 string.replace 而不是反序列化。
-
看起来像 JSON deserialization of variable named parameter using DataContract 的副本。或者只是按照here 的解释,使用
UseSimpleDIctionaryFormat序列化一个Dictionary<string, List<attr>>。 -
@botond.botos 是的,这是一个硬性要求。
-
@Haksu 你能解释一下吗,因为我是新手 :)
标签: c# json memorystream dynamics-crm-2016 datacontractjsonserializer