首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何删除Newtonsoft JSON和ASP.NET Core中的缩进并将其添加到设置中

如何删除Newtonsoft JSON和ASP.NET Core中的缩进并将其添加到设置中
EN

Stack Overflow用户
提问于 2022-09-19 11:34:40
回答 1查看 63关注 0票数 0

我应该将我们的JSON输出转换成规范的JSON。

我的两个问题是:

  1. 如何删除所有缩进和白线,例如?
  2. 如何将这些设置添加到startup.cs ?

我的同事编写了使用Newtonsoft的JsonWriterJsonReader方法创建JSON文件的方法。

我已经在一个新的类中重写了DefaultContractResolver,以便按字母顺序对键进行排序,但未能在启动时找到适当的点来添加这些设置。另外,我也错过了删除所有缩进、新行等选项。

这是我的CanonicalContractResolver

代码语言:javascript
运行
复制
public class CanonicalContractResolver : DefaultContractResolver
{
    public override JsonContract ResolveContract(Type type)
    {
        var contract = base.CreateContract(type);
            
        // remove Intendation here

        return contract;
    }

    protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
    {
        return base.CreateProperties(type, memberSerialization).OrderBy(p => p.PropertyName).ToList();
    }
}

前面提到的JsonReaderJsonWriter类(需要规范的JSON输出)在startup.cs中的Configure方法中是这样链接的--我真的不明白应该在哪里添加在CanonicalContractResolver类中所做的更改。

代码语言:javascript
运行
复制
services.AddControllers()
            .AddNewtonsoftJson(options => {
                options.SerializerSettings.Converters.Add(new SignaturesConverter());
                options.SerializerSettings.Converters.Add(new PolicyConverter());
            });

我是软件工程师的初学者,这是我第一篇关于Stackoverflow的文章。我已经在这个主题上研究了6-7个小时,但是Newtonsoft文档非常稀少,对我没有多大帮助。

提前感谢大家的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-20 01:53:17

您可以设置NewtonsoftJson的Format属性。

如果您设置为Indented

代码语言:javascript
运行
复制
services.AddControllers()
            .AddNewtonsoftJson(options => {
                options.SerializerSettings.Formatting = Formatting.Indented;
            });

然后输出如下所示:

如果您设置为None

代码语言:javascript
运行
复制
services.AddControllers()
                .AddNewtonsoftJson(options => {
                    options.SerializerSettings.Formatting = Formatting.None;
                });

然后输出如下所示:

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

https://stackoverflow.com/questions/73772764

复制
相关文章

相似问题

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