首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将一种方法迁移到System.Text.Json

将一种方法迁移到System.Text.Json
EN

Stack Overflow用户
提问于 2020-05-27 04:30:38
回答 2查看 1.5K关注 0票数 1

我在.net Core3.1中添加了NewtonsoftJson作为中间件。我很乐意转移到新的System.Text.Json序列化程序。

我不能跳过,但是有没有办法在一个方法中使用来自System.Text.Json的方法?或多或少,这是一个我需要加速的问题。

添加:我在启动中

代码语言:javascript
复制
services.AddControllers(options => options.RespectBrowserAcceptHeader = true)
        .AddNewtonsoftJson(options => options.SerializerSettings.ReferenceLoopHandling =
                Newtonsoft.Json.ReferenceLoopHandling.Ignore);

我的迁移问题是,我不能一下子把它改成System.Text.Json。因此,如果我可以更改一个控制器或控制器中的一个方法来使用System.Text.Json版本,就可以解决我的问题。

EN

回答 2

Stack Overflow用户

发布于 2020-05-28 05:16:09

这在.Net 3.1中目前还没有实现。当前的迁移指南规定:

Newtonsoft.Json还有一个ReferenceLoopHandling设置,可以让您忽略循环引用,而不是抛出异常。

System.Text.Json仅支持按值序列化,并对循环引用抛出异常。

另请参阅github issue ,其中声明这是一个“已知限制”-但目前发布的里程碑是.Net Core5.0。建议的规范在这里:https://github.com/dotnet/runtime/blob/master/src/libraries/System.Text.Json/docs/ReferenceHandling_spec.md

票数 1
EN

Stack Overflow用户

发布于 2021-07-11 01:15:24

从.Net 6开始,System.Text.Json支持忽略循环引用,可以这样使用

代码语言:javascript
复制
services.AddControllers()
.AddJsonOptions(options => {options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles;});

有关更多信息,请查看此处:https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-preserve-references?pivots=dotnet-6-0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62030909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档