我在这个问题上困扰了很长时间,所以我在这里问。
我收到以下错误消息:
"Newtonsoft.Json.JsonSerializationException: 'Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'XXX' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly."
这是我班的样子:
public class SSN
{
public IDictionary<string,string> ssns { get; set; }
}
这是json格式:
答案 0 :(得分:4)
您的JSON包含密钥和 ssn 而不是密钥和值,因此字典将不起作用。 您需要创建类似以下的类:
generate
然后反序列化json以收集SSN对象。
答案 1 :(得分:0)
首先,您需要创建类对象以正确反序列化json,如
class SampleClass
{
public string ssn { get; set; }
public string key { get; set; }
}
然后,您需要将json反序列化为List<SampleClass>
,因为json是一种数组类型,这意味着它从打开方括号[
开始并以闭合方括号]
结束而不是卷曲方括号{}
。
List<SampleClass> sampleClasses = JsonConvert.DeserializeObject<List<SampleClass>>(json_string);
OR
List<SampleClass> sampleClasses = JToken.Parse(json_string).ToObject<List<SampleClass>>();