JavaScriptSerializer.Deserialize数组

Dea*_*ean 19 c# asp.net-mvc-3

我在.NET MVC3中反序列化数组时遇到问题,任何帮助都会受到赞赏.

这是代码片段:

using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
using (StreamReader reader = new StreamReader(response.GetResponseStream())) {
    JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
    string jsonData = reader.ReadToEnd();
    result = (BigCommerceOrderProducts)jsSerializer.Deserialize<BigCommerceOrderProducts>(jsonData);
}
Run Code Online (Sandbox Code Playgroud)

这是JSON作为jsonData返回的数据字符串的子集.我删除了额外的字段.

"[
{\"id\":33,\"order_id\":230025,...},
{\"id\":34,\"order_id\":230025,...}
]"
Run Code Online (Sandbox Code Playgroud)

这是对象:

[Serializable]
public class BigCommerceOrderProducts {
    public List<BigCommerceOrderProduct> Data { get; set; }
}

[Serializable]
public class BigCommerceOrderProduct {
    public int Id { get; set; }
    public int Order_id { get; set; }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

"Type 'Pxo.Models.BigCommerce.BigCommerceOrderProducts' is not supported for deserialization of an array.
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

L.B*_*L.B 47

您应该反序列化您的json字符串以键入List<BigCommerceOrderProduct>.不需要BigCommerceOrderProducts上课

var myobj = jsSerializer.Deserialize<List<BigCommerceOrderProduct>>(jsonData);
Run Code Online (Sandbox Code Playgroud)