首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用C#在.NET中获取格式化的JSON?

如何使用C#在.NET中获取格式化的JSON?
EN

Stack Overflow用户
提问于 2010-04-18 11:54:20
回答 14查看 293.7K关注 0票数 310

我正在使用.NET JSON解析器,并希望序列化我的配置文件,以便它是可读的。因此,不是:

{"blah":"v", "blah2":"v2"}

我想要一些更好的东西,比如:

{
    "blah":"v", 
    "blah2":"v2"
}

我的代码是这样的:

using System.Web.Script.Serialization; 

var ser = new JavaScriptSerializer();
configSz = ser.Serialize(config);
using (var f = (TextWriter)File.CreateText(configFn))
{
    f.WriteLine(configSz);
    f.Close();
}
EN

回答 14

Stack Overflow用户

发布于 2014-01-28 21:41:26

用于Json.Net库的较短的示例代码

private static string FormatJson(string json)
{
    dynamic parsedJson = JsonConvert.DeserializeObject(json);
    return JsonConvert.SerializeObject(parsedJson, Formatting.Indented);
}
票数 214
EN

Stack Overflow用户

发布于 2015-05-19 23:20:56

如果你有一个JSON字符串并且想要“美化”它,但是又不想把它序列化为一个已知的C#类型,那么下面的方法就可以解决这个问题(使用JSON.NET):

using System;
using System.IO;
using Newtonsoft.Json;

class JsonUtil
{
    public static string JsonPrettify(string json)
    {
        using (var stringReader = new StringReader(json))
        using (var stringWriter = new StringWriter())
        {
            var jsonReader = new JsonTextReader(stringReader);
            var jsonWriter = new JsonTextWriter(stringWriter) { Formatting = Formatting.Indented };
            jsonWriter.WriteToken(jsonReader);
            return stringWriter.ToString();
        }
    }
}
票数 142
EN

Stack Overflow用户

发布于 2018-03-22 19:03:28

使用Newtonsoft.Json.Linq的Oneliner

string prettyJson = JToken.Parse(uglyJsonString).ToString(Formatting.Indented);
票数 60
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2661063

复制
相关文章

相似问题

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