【发布时间】:2018-05-01 22:01:06
【问题描述】:
我正在使用
List<T> mylist = JsonConvert.DeserializeObject<List<T>>(instring);
反序列化对象(并经常对许多数据类型使用此泛型类型例程)。我打了一个给我错误的:
无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型“System.Collections.Generic.List`1[NetRestSqlApi.Models.CA_Users]”,因为该类型需要 JSON 数组(例如[1,2,3]) 正确反序列化。
要修复此错误,请将 JSON 更改为 JSON 数组(例如 [1,2,3])...
数据正确。如果我反序列化键入对象而不是使用通用类型 T 它可以正常工作。
List<NetRestSqlApi.Models.CA_Users> mylist1 =
JsonConvert.DeserializeObject<List<NetRestSqlApi.Models.CA_Users>>(instring);
我很茫然。我正在使用最新的 newtonsoft 10.0.3。我已经调试并验证了 T 与我上面硬编码的对象/模型完全相同。
我可以坐下来玩参数(我已经这样做了),但在一天结束时,根据其他帖子,我认为这种反序列化应该对两者都起作用。我没有发现数据有任何问题,并且可以在 notepad++ 中反序列化,当我查看它时,一切都是正确的。
除了硬编码之外,我还可以尝试进一步的诊断或解决方法吗?
【问题讨论】:
-
谢谢布赖恩,但我找到了。我希望有人能回头看看我,告诉我这次我做了什么蠢事。
标签: json list generics types deserialization