【问题标题】:Jsonconvert.deserialize generic list type bug?Jsonconvert.deserialize 泛型列表类型错误?
【发布时间】: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


【解决方案1】:

谢谢布赖恩,但我找到了。我补充说。

if (typeof(T)== typeof(CA_Users))

并发现我正在将列表传递给 T 而不是对象。所以在调试中它看起来是正确的,但不是。感谢您的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多