我已经知道如何使用DataContractJsonSerializer
反序列化JSON数组,但现在我有一个JSON 对象,它有一个名为items
的键,值为array
。
例如,JSON字符串为{ name: "someString", items: [1, 2, 3] }
现在我想知道是否有任何内置方法将此对象转换为从List<T>
派生的自定义类,例如转到以下类:
[DataContract] // This is not working, you can't apply DataContract attribute to a List<T>
// [ItemsCollectionIsIn("items")]
public class MyObject : List<int>
{
[DataMember]
public string name;
}
我曾尝试将[CollectionDataContract]
设置为ItemName
"items"
,但似乎DataContractJsonSerializer
只忽略ItemName
属性,并将对象序列化/反序列化为/从阵列。
现在我可以在我的类上实现IList<T>
并从内部列表返回值,或者我认为我可以为JSON对象契约编写一个类,另一个从List派生,然后手动填充值,是否有任何更好的方法?
我正在使用Windows Phone LongListSelector
,所以我需要一个GroupedList(List<List<T>>
)。
或者如果JSON.Net可以更容易地做到这一点,请给我一些提示。
答案 0 :(得分:1)
我认为你错误地建模了你的类型,数组是根对象中的属性。试试这种方式:
[DataContract]
public class MyObject
{
[DataMember]
public string name;
[DataMember]
public List<int> items;
}