从字符串反序列化到对象

我在这个问题上已经困了很长时间,所以我在这里问。


我收到以下错误消息:


"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 格式:

http://img3.mukewang.com/6300a58a000188c913920423.jpg

素胚勾勒不出你
浏览 128回答 2
2回答

MMMHUHU

您的 JSON 包含键和 ssn 而不是键和值,因此字典将不起作用。您需要创建如下类:class SSN{&nbsp; &nbsp; public string ssn {get;set;}&nbsp; &nbsp; public string key {get;set;}}并将 json 反序列化为 SSN 对象的集合。

ITMISS

首先,您需要创建类对象来正确反序列化您的json,例如class SampleClass{&nbsp; &nbsp; public string ssn { get; set; }&nbsp; &nbsp; public string key { get; set; }}然后,您需要将json反序列化为,因为json是一种数组类型,这意味着它从左方括号开始,并以右方括号而不是大括号结尾。List<SampleClass>[]{}List<SampleClass> sampleClasses = JsonConvert.DeserializeObject<List<SampleClass>>(json_string);或List<SampleClass> sampleClasses = JToken.Parse(json_string).ToObject<List<SampleClass>>();
打开App,查看更多内容
随时随地看视频慕课网APP