You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JsonSerializer为JSON字符串添加缩进优化显示格式?

JSON字符串格式化的可行方案

.NET 环境下的正确实现

你提到的JsonSerializerOptions.WriteIndented是System.Text.Json库的配置,正确的使用步骤是先解析混乱的JSON,再用带缩进的选项重新序列化:

方法1:序列化/反序列化实现

using System.Text.Json;

// 替换为你获取到的原始JSON字符串
string rawJson = "{\"id\":1,\"data\":{\"key\":\"value\"}}";

// 解析JSON为文档对象
JsonDocument jsonDoc = JsonDocument.Parse(rawJson);

// 配置缩进选项
JsonSerializerOptions options = new JsonSerializerOptions { WriteIndented = true };

// 生成格式化后的JSON
string formattedJson = JsonSerializer.Serialize(jsonDoc, options);

方法2:通过JsonWriter直接写入

如果不想完整序列化对象,也可以用Utf8JsonWriter直接输出格式化内容:

using System.Text.Json;
using System.IO;
using System.Text;

string rawJson = "{\"id\":1,\"data\":{\"key\":\"value\"}}";
JsonDocument jsonDoc = JsonDocument.Parse(rawJson);

using MemoryStream stream = new MemoryStream();
using Utf8JsonWriter writer = new Utf8JsonWriter(stream, new JsonWriterOptions { Indented = true });

jsonDoc.WriteTo(writer);
writer.Flush();

string formattedJson = Encoding.UTF8.GetString(stream.ToArray());

前端/JavaScript场景

如果是在前端页面展示,直接用原生JSON API即可快速格式化:

// 原始混乱JSON字符串
const rawJson = '{"id":1,"data":{"key":"value"}}';
// 解析后重新序列化,第三个参数为缩进空格数(可按需调整)
const formattedJson = JSON.stringify(JSON.parse(rawJson), null, 2);

其他主流语言方案

  • Java:使用Jackson库,通过new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(jsonNode)实现
  • Python:import json; formatted_json = json.dumps(json.loads(raw_json), indent=2)
  • PHP:json_encode(json_decode($raw_json), JSON_PRETTY_PRINT)

内容的提问来源于stack exchange,提问作者Stout

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:05:27