JavaScriptSerializer.Deserialize数组
我在.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(jsonData); }
这是JSON作为jsonData返回的数据字符串的子集。 我删除了额外的字段。
"[ {"id":33,"order_id":230025,...}, {"id":34,"order_id":230025,...} ]"
这是对象:
[Serializable] public class BigCommerceOrderProducts { public List 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
。 不需要BigCommerceOrderProducts
类
var myobj = jsSerializer.Deserialize>(jsonData);
这个小小的程序对我来说很好。 可能是响应流中的意外情况。
json输出为:{“Data”:[{“Id”:33,“Order_id”:230025},{“Id”:34,“Order_id”:230025}]}
上述就是C#学习教程:JavaScriptSerializer.Deserialize数组分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
JavaScriptSerializer jsSerializer = new JavaScriptSerializer(); BigCommerceOrderProducts a = new BigCommerceOrderProducts(); a.Data = new List(); BigCommerceOrderProduct b = new BigCommerceOrderProduct(); b.Id = 33; b.Order_id = 230025; a.Data.Add(b); b = new BigCommerceOrderProduct(); b.Id = 34; b.Order_id = 230025; a.Data.Add(b); string x = jsSerializer.Serialize(a); Console.WriteLine(x); a = jsSerializer.Deserialize(x); Console.WriteLine(a.Data[0].Order_id); Console.ReadLine();
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/960932.html