Skip to content

缩进 (美化) 序列化 JSON

陈鑫伟 edited this page May 20, 2019 · 1 revision

很多时候我们想要一串结构清晰的 JSON,以便于我们更容易看明白。所以 Swifter.Json 提供了缩进 JSON 的功能。

默认情况下这样就可以达到目的。

    public class Demo
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public static void Main()
        {
            var jsonFormatter = new JsonFormatter(JsonFormatterOptions.Indented);

            var json = jsonFormatter.Serialize(new Demo { Id = 1, Name = "Dogwei" });
            var obj = jsonFormatter.Deserialize<Demo>(json);

            Console.WriteLine(json);
            /*
             * Output:
             * {
             *   "Id": 1,
             *   "Name": "Dogwei"
             * }
            **/
        }
    }

缩进符,换行符,分隔符都是可以设置的。

var jsonFormatter = new JsonFormatter(JsonFormatterOptions.Indented);

jsonFormatter.LineBreakChars = "\r\n"; // 设置换行符。每拼接一个值之后都会拼接一个换行符。
jsonFormatter.IndentedChars = "    "; // 设置缩进符。每凭借一个值之前都会拼接该值深度数量的缩进符。
jsonFormatter.MiddleChars = " "; // 设置分隔符。每拼接一个对象的 "字段名": 后都会拼接一个分隔符。

// 这三个设置只在 Options 设置了 JsonFormatterOptions.Indented 时才有效。