I have JSON string: // the coverage value is an array.
string jsonData = @"{
""plans"":
[
{
""plan_code"":""UL500"",
""plan_name"":""Unlimited 500M"",
""days"":1,
""limit"":500,
""coverage"":
[
{
""country"":""SE"",
},
{
""country"":""BZ""
}
]
},
{
""plan_code"":""UL1GB"",
""plan_name"":""Unlimited 1GB"",
""days"":1,
""limit"":1024,
""coverage"":
[
{
""country"":""SG"",
},
{
""country"":""JP""
}
]
}
]
}
";
and i'm parse by JsonConvert.DeserializeObject as sample code below:
try
{
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync("", content);
var result = await response.Content.ReadAsStringAsync();
var tempRecords = JsonConvert.DeserializeObject<List<plan>>(result);
}
and then i'm get an error message: "Cannot deserialize the current JSON object (e.g. {\"name\":\"value\"}) into type 'System.Collections.Generic.List`1[DAL.plan]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.\r\nTo fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object.\r\nPath 'plans', line 1, position 9."
please show me a right way for this issue.