JavaScriptSerializer.Deserialize数组 [英] JavaScriptSerializer.Deserialize array

查看:367
本文介绍了JavaScriptSerializer.Deserialize数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在.NET MVC3中反序列化数组时遇到麻烦,我们将不胜感激.

I'm having trouble deserializing an array in .NET MVC3, any help would be appreciated.

这是代码段:

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);
}

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

Here's the subset of the data string returned by JSON as jsonData. I've remove extra fields.

"[
{\"id\":33,\"order_id\":230025,...},
{\"id\":34,\"order_id\":230025,...}
]"

这里是对象:

[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; }
    ...
}

我收到此错误:

"Type 'Pxo.Models.BigCommerce.BigCommerceOrderProducts' is not supported for deserialization of an array.

有什么想法吗?

推荐答案

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

You should deserialize your json string to type List<BigCommerceOrderProduct>. No need for BigCommerceOrderProducts class

var myobj = jsSerializer.Deserialize<List<BigCommerceOrderProduct>>(jsonData);

这篇关于JavaScriptSerializer.Deserialize数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆