JsonSerializer.Serialize vs JsonResult - 一个可能的对象循环 .NET Core 3.1
JsonSerializer.Serialize vs JsonResult - A possible object cycle .NET Core 3.1
我在这里和 GitHub 上阅读了一些关于 .NET Core 3.1 在收紧数据序列化允许方面的变化。我的实际例外是:
System.Text.Json.JsonException: 'A possible object cycle was detected which is not supported. This can either be due to a cycle or if the object depth is larger than the maximum allowed depth of 0.'
当我在网上搜索时,结果很少,但从我收集的信息来看,它告诉我它不喜欢正在序列化的相关数据。嗯,在过去,这不是问题。阅读 this post 后,它说要安装 Newtonsoft Json 序列化程序包。我这样做了,并在 Startup 中添加了措辞,但得到了相同的结果。因此,我在这里阅读了另一个 post,其中回答问题的成员 return 在方法中输入了 JsonResult
。我试过这个作为测试,它工作得很好。问题是,我需要 return 数据(序列化)到一个视图。
我的问题是,为什么标准 System.Text.Json.JsonSerializer
不能序列化我的数据,而 JsonResult 可以?无论哪种方式,我只需要序列化我的数据并且无法解决此错误,我们将不胜感激任何帮助。如果我必须通过 API return 数据并继续使用 Json 结果,我对此没有意见,但担心它为什么会起作用。
正如@poke 所建议的那样,使用 Json.Serialize
是可行的。我正在使用 System.Text.Json.JsonSerializer.Serialize(Model)
并且由于某些奇怪的原因,即使在 Startup 中设置了 Ignore 选项,这也会引发相同的异常。需要进行更多的研究,但至少这给了我一些值得研究的东西。
我在这里和 GitHub 上阅读了一些关于 .NET Core 3.1 在收紧数据序列化允许方面的变化。我的实际例外是:
System.Text.Json.JsonException: 'A possible object cycle was detected which is not supported. This can either be due to a cycle or if the object depth is larger than the maximum allowed depth of 0.'
当我在网上搜索时,结果很少,但从我收集的信息来看,它告诉我它不喜欢正在序列化的相关数据。嗯,在过去,这不是问题。阅读 this post 后,它说要安装 Newtonsoft Json 序列化程序包。我这样做了,并在 Startup 中添加了措辞,但得到了相同的结果。因此,我在这里阅读了另一个 post,其中回答问题的成员 return 在方法中输入了 JsonResult
。我试过这个作为测试,它工作得很好。问题是,我需要 return 数据(序列化)到一个视图。
我的问题是,为什么标准 System.Text.Json.JsonSerializer
不能序列化我的数据,而 JsonResult 可以?无论哪种方式,我只需要序列化我的数据并且无法解决此错误,我们将不胜感激任何帮助。如果我必须通过 API return 数据并继续使用 Json 结果,我对此没有意见,但担心它为什么会起作用。
正如@poke 所建议的那样,使用 Json.Serialize
是可行的。我正在使用 System.Text.Json.JsonSerializer.Serialize(Model)
并且由于某些奇怪的原因,即使在 Startup 中设置了 Ignore 选项,这也会引发相同的异常。需要进行更多的研究,但至少这给了我一些值得研究的东西。