Csharp/C#教程:JavaScriptSerializer.Deserialize数组分享


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

(0)
上一篇 2021年11月25日
下一篇 2021年11月25日

精彩推荐