我正在尝试用javascriptserializer在c_中反序列化一些json,并且有一些关于使用datamember的问题。
我希望我的datacontract类有一个名为“parts”的属性,它映射到json对象“rings”。如果我设置datamember name=“rings”并将属性命名为“rings”,则一切都将按预期工作。但是,如果我将属性命名为“parts”(保留datamember name=“rings”)。部分始终为空。
// this is always null
[DataMember(Name = "rings")]
public ArrayList Parts { get; set; }
// this works fine
[DataMember(Name = "rings")]
public ArrayList Rings { get; set; }
反序列化后,是否可以将多个json对象映射到单个属性。例如,输入的json字符串可能不包含“rings”,而是包含“point”或“line”。我能把这三种类型都映射到parts属性吗?
最佳答案
JavaScriptSerializer
位于System.Web.Extensions
中,不知道DataMemberAttribute
。
尝试System.Runtime.Serialization.Json
中的DataContractJsonSerializer(.net 40-system.runtime.serialization.dll,.net 3.5-system.servicemodel.web.dll)