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

C#中JsonPrettify处理后属性值显示异常求助

解决C#中JSON格式化时转义字符异常显示的问题

问题出在序列化时的编码配置,默认编码器会将双引号(")、小于号(<)等字符转义为Unicode序列,你需要正确配置JavaScriptEncoder.UnsafeRelaxedJsonEscaping来保留原始转义格式,同时确保引用对应的命名空间。

修改后的代码如下:

using System.Text.Encodings.Web; // 必须引用此命名空间
using System.Text.Json;

public static string JsonPrettify(this string json)
{
    using var jDoc = JsonDocument.Parse(json);
    return JsonSerializer.Serialize(jDoc, new JsonSerializerOptions 
    { 
        WriteIndented = true,
        Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping // 启用宽松编码规则
    });
}

说明

  • JavaScriptEncoder.UnsafeRelaxedJsonEscaping会跳过对ASCII可打印字符的Unicode转义,包括双引号、小于号这类字符,序列化后会保留原始的\" :<格式,而非转成\u0022:\u003C。
  • 必须引用System.Text.Encodings.Web命名空间才能使用该编码器。

测试修改后的方法,处理你提供的原始JSON,输出结果将恢复为:

{
  "CompanyCode": "\" :<"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 09:02:07