我正在创建一个Windows Phone银光8应用程序。Newsoft Json反序列化成产品集合不起作用
我有一个JSON字符串,我试图将其转换为对象列表,每个对象是一个类归类为“产品”的对象,列表应该是产品。最终我希望它转换为Observable集合,以便我可以将该集合绑定到我的Windows Silverlight手机应用程序的列表框中。
这里是我的类
public class Product
{
public string _id { get; set; }
public string code { get; set; }
public string name { get; set; }
public string imgAddress { get; set; }
public int queryCount { get; set; }
}
这里是代码反序列化JSON
var PDS = "{\"products\":[{\"_id\":\"58b2\",\"code\":\"59034\",\"name\":\"somename1\",\"imgAddress\":\"https://someimageurl/.../.jpg\",\"queryCount\":0},{\"_id\":\"58b3\",\"code\":\"59035\",\"name\":\"somename2\",\"imgAddress\":\"https://someimageurl2/.../.jpg\",\"queryCount\":1}]}";
var pds = JsonConvert.DeserializeObject<List<Product>>(PDS);
//PDS is actually very long string and the array products has a lot of objects but I am only writing 2 products here for simplicity.
这是我收集绑定
public ObservableCollection<Product> Products { get; set; }
个
错误 >>首先我正在解析错误,所以我逃过这样字符串中的所有引号\” ** ** >>但后来它只是转换为普通的字符串状物体,但我要转换的类型“产品”的产品集合
>>异常
其他信息:无法反序列化JSON当前对象(例如{“name”:“value”})转换为类型'System.Collections.Generic.List`1 [PivotApp1.Product]',因为该类型需要JSON数组(例如[1,2,3])才能正确地反序列化。 要修复此错误,请将JSON更改为JSON数组(例如[1,2,3])或更改反序列化的类型,以使其为正常的.NET类型(例如,不是像整数这样的基本类型,也不是集合类型像数组或列表),可以从JSON对象反序列化。 JsonObjectAttribute也可以添加到类型中,以强制它从JSON对象反序列化。
Path'products',line 1,position 12。
预先感谢
您提供的代码甚至不会编译。请提供[mcve]。 –