JavaScriptSerializer反序列化返回0个结果列表

本文关键字:结果 列表 0个 返回 反序列化 JavaScriptSerializer | 更新日期: 2023-09-27 18:07:19

试图将json字符串反序列化为列表。Json字符串不是空的。但反序列化后,列表返回0项。

这是我的班。

 [Serializable]
    public class Products : GenericItem
    {
        public List<string> Images { get; set; }
        public double Price { get; set; }
        public double SalePrice { get; set; }
        public bool OnSale
        {
            get { return (SalePrice < Price); }
        }
        public string Description { get; set; }
        public GenericItem Brand { get; set; }
        public List<GenericItem> Shops { get; set; }
        public string ProductCode { get; set; }
        public Colour Colour { get; set; }
    }
    [Serializable]
    public class Colour : GenericItem
    {
        public string Code { get; set; }
    }
    [Serializable]
    public class GenericItem
    {
        public string Name { get; set; }
        public string Permalink { get; set; }
    }

这是我的json字符串

"{'"Products'":[{'"_id'":'"515c151f7be95925d4ee794d'",'"Name'":'"CAT Formation Steel Toe - Boots  BLACK'",'"Description'":'"CAT Formation Steel Toe Boots With heavy-duty hardwearing uppers, high grip rubber outsoles and a steel toe cap, these CAT Formation Steel Toe Boots are perfect for work. CAT Formation Steel Toe Boots are ankle length and fasten with strong laces for a secure fit. The boots are available in black and have a casual multi-panelled trainer-style appearance, as well as CAT branding on the tongue and heel.'",'"ProductCode'":'"D0073'",'"Images'":['"18000.jpg'",'"18001.jpg'",'"18002.jpg'"],'"Brand'":{'"_id'":'"5142ca0c7be95917acce7755'",'"Name'":'"CAT'",'"Permalink'":'"cat-footwear'"},'"Shops'":[{'"_id'":'"5142ca237be95917acce7999'",'"Name'":'"Mens'",'"Styles'":null,'"Permalink'":'"Mens'"}],'"Permalink'":'"cat-formation-steel-toe-boots-black'",'"Price'":89.99,'"SalePrice'":89.99}]}"

这是我如何反序列化json字符串。

 var jss = new JavaScriptSerializer();
            jss.MaxJsonLength = Int32.MaxValue;
            var results = jss.Deserialize<List<Products>>(json);

列表总是返回0个结果。

谁来帮帮我。

JavaScriptSerializer反序列化返回0个结果列表

您的JSON不是一个列表,而是一个具有属性Products的对象,这是一个列表。

你可以把它反序列化成这样:

public class MyClass
{
    public List<Products> Products { get; set; }
}
...
jss.Deserialize<MyClass>(json);