📜  c# format json - C# (1)

📅  最后修改于: 2023-12-03 15:13:48.944000             🧑  作者: Mango

C# Format JSON

C# 在处理 JSON 格式数据时非常方便,它提供了多种方式来格式化 JSON。下面将会介绍几种常用的方式。

1. 使用 Newtonsoft.Json 包

Newtonsoft.Json 是一个流行的 JSON 序列化/反序列化库,它可以轻松地将 C# 对象序列化成 JSON 字符串,并且还支持对 JSON 字符串进行反序列化。使用这个库来格式化 JSON 十分简单:

using Newtonsoft.Json;
using System;

class Program
{
    static void Main(string[] args)
    {
        string jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";

        var formattedJson = JsonConvert.SerializeObject(JsonConvert.DeserializeObject(jsonString), Formatting.Indented);
        Console.WriteLine(formattedJson);
    }
}

这段代码将输出格式良好的 JSON。

2. 使用 System.Text.Json 包

.NET Core 中,System.Text.Json 是官方 JSON 处理库,与 Newtonsoft.JSON 相比,它主要强调更快的性能和更好的安全性。使用这个库来格式化 JSON 也十分简单:

using System.Text.Json;
using System.Text.Json.Serialization;
using System;

class Program
{
    static void Main(string[] args)
    {
        string jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";

        var options = new JsonSerializerOptions
        {
            WriteIndented = true
        };

        var formattedJson = JsonSerializer.Serialize(JsonSerializer.Deserialize<JsonElement>(jsonString), options);
        Console.WriteLine(formattedJson);
    }
}

这段代码将输出格式良好的 JSON。

3. 使用 Json.Net 格式化器

Json.Net 是一种功能丰富的 JSON 序列化/反序列化库,它还提供了一些扩展方法,可以从文本或 JSON 中加载格式化的 JSON。

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

class Program
{
    static void Main(string[] args)
    {
        string jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";

        var jObject = JObject.Parse(jsonString);
        var jsonStringWriter = new StringWriter();
        var jsonWriter = new JsonTextWriter(jsonStringWriter)
        {
            Formatting = Formatting.Indented
        };

        jObject.WriteTo(jsonWriter);
        jsonWriter.Flush();
        Console.WriteLine(jsonStringWriter.ToString());
    }
}

这段代码将输出格式良好的 JSON。

以上都是常用的几种格式化 JSON 的方式,可以根据具体的需求选择适合自己的方法。