C# 将JSON数组反序列化为对象

C# 将JSON数组反序列化为对象,c#,json,C#,Json,我已经开始做这件事有一段时间了,但我似乎无法完全理解它,实际上我有一个JSON数组,我想将其解码到Notifications对象中,例外情况是: “Newtonsoft.Json.Json.JsonSerializationException”类型的未处理异常发生在Newtonsoft.Json.dll中 其他信息:无法将当前JSON数组(例如[1,2,3])反序列化为类型“WpfApplication2.Notifications”,因为该类型需要JSON对象(例如{“name”:“value

我已经开始做这件事有一段时间了,但我似乎无法完全理解它,实际上我有一个JSON数组,我想将其解码到Notifications对象中,例外情况是:

“Newtonsoft.Json.Json.JsonSerializationException”类型的未处理异常发生在Newtonsoft.Json.dll中 其他信息:无法将当前JSON数组(例如[1,2,3])反序列化为类型“WpfApplication2.Notifications”,因为该类型需要JSON对象(例如{“name”:“value”})才能正确反序列化。”


应将其反序列化为列表:

public IList<Notifications> Notes;

Notes = JsonConvert.DeserializeObject<IList<Notifications>>(responseString);
公共IList注释;
Notes=JsonConvert.DeserializeObject(responseString);

应该有用

您应该将其反序列化为一个列表:

public IList<Notifications> Notes;

Notes = JsonConvert.DeserializeObject<IList<Notifications>>(responseString);
公共IList注释;
Notes=JsonConvert.DeserializeObject(responseString);

应该有用

您的调用尝试反序列化单个对象。这种对象的预期Json将是一个值字典,这就是错误消息所说的

您应该尝试反序列化为IEnumerable派生集合,例如数组或列表:

Notifications[] Notes = JsonConvert.DeserializeObject<Notifications[]>(responseString);
Notifications[]Notes=JsonConvert.DeserializeObject(responseString);

IList Notes=JsonConvert.DeserializeObject(responseString);

您的调用尝试反序列化单个对象。这种对象的预期Json将是一个值字典,这就是错误消息所说的

您应该尝试反序列化为IEnumerable派生集合,例如数组或列表:

Notifications[] Notes = JsonConvert.DeserializeObject<Notifications[]>(responseString);
Notifications[]Notes=JsonConvert.DeserializeObject(responseString);

IList Notes=JsonConvert.DeserializeObject(responseString);

可能是因为您的数组未命名,即它应该类似于
{“arrayname”:[{…},{…}]}
?您需要反序列化到数组或集合可能是因为您的数组未命名,即它应该类似于
{“arrayname”:[{…},{…}]}
?您需要反序列化到一个数组或集合也可以是一个数组。呃,我不确定在这里选择哪一个它们都可以工作!也可能是一个数组。呃,我不确定在这里选择哪一个它们都有效!我投了更高的票,因为它也起作用,查尔斯在希望之前到了那里,虽然这看起来公平?我投了更高的票,因为它也起作用,查尔斯在希望之前到了那里,虽然这看起来公平?
IList<Notifications> Notes = JsonConvert.DeserializeObject<IList<Notifications>>(responseString);