JsonNet.Deserialize <t> NullReferenceException

时间:2019-03-19 13:19:37

标签: json.net

使用

<PackageReference Include="Json.NET" Version="1.0.16" />

我有一些看起来像JSON

{
    "links": [ { ... }, ... ]
}

显然,省略号是为了简洁。

这很好地反序列化为仅具有三个属性的模型类型,其中只有一个是links,另外两个尚未使用,我已删除它们进行测试,这对我的问题没有任何影响。

我的模型类型上的links属性是一个通用集合HyperlinkCollection<TLink>

一切正常,直到我将JSON更改为此。

{
    "about": {
      "version": "1",
      "healthMessage": "Healthy"
    },
    "links": [ ... ]
}

然后我收到此错误。

System.NullReferenceException: Object reference not set to an instance of an object.
   at Json.Net.JsonParser.FromJson(Type type)
   at Json.Net.JsonParser.FromJson(Type type)
   at Json.Net.JsonNet.Deserialize[T](String json, IJsonConverter[] converters)

首先,我觉得裸露的NullRef应该来自库是不对的。

第二,我认为无关的成员about将被忽略。

1 个答案:

答案 0 :(得分:0)

刚意识到有人将一个$schedule->call(function () { Heartbeat::dispatch(); })->everyFiveMinutes(); 包添加到了NuGet.org,而不是Json.NET

我转而使用真实的东西,并且一切正常。