1

Trying to Deserialize json string to a List. Json string is not empty. But after deserialization the list returning 0 items.

This is my class.

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

This is my json string.

"{\"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}]}"

This is how I am deserializing the json string.

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

List always returning 0 results.

Could somebody help me.

1 Answer 1

3

Your JSON is not a list, but an object that have a property Products, that is a list.

You can deserialize it to something like that:

public class MyClass
{
    public List<Products> Products { get; set; }
}
...

jss.Deserialize<MyClass>(json);
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks for your reply. Couldn't spot on my mistake.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.