📅  最后修改于: 2023-12-03 15:13:48.944000             🧑  作者: Mango
C# 在处理 JSON 格式数据时非常方便,它提供了多种方式来格式化 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。
.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。
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 的方式,可以根据具体的需求选择适合自己的方法。