gpt4 book ai didi

c# - dotnet core System.Text.Json 转义 unicode 字符串

转载 作者:行者123 更新时间:2023-11-30 19:35:22 27 4
gpt4 key购买 nike

使用 JsonSerializer.Serialize(obj) 将生成转义字符串,但我想要未转义的版本。例如:

using System;
using System.Text.Json;

public class Program
{
public static void Main()
{
var a = new A{Name = "你好"};
var s = JsonSerializer.Serialize(a);
Console.WriteLine(s);
}
}

class A {
public string Name {get; set;}
}

会产生一个字符串 {"Name":"\u4F60\u597D"} 但我想要 {"Name":"你好"}

我在 https://dotnetfiddle.net/w73vnO 创建了一个代码片段
请帮助我。

最佳答案

您需要设置 JsonSerializer 选项以不对这些字符串进行编码。

JsonSerializerOptions jso = new JsonSerializerOptions();
jso.Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping;

然后在调用 Serialize 方法时传递此选项。

var s = JsonSerializer.Serialize(a, jso);        

完整代码:

JsonSerializerOptions jso = new JsonSerializerOptions();
jso.Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping;

var a = new A { Name = "你好" };
var s = JsonSerializer.Serialize(a, jso);
Console.WriteLine(s);

结果:

enter image description here

如果您需要在控制台打印结果,您可能需要安装额外的语言。请引用here .

关于c# - dotnet core System.Text.Json 转义 unicode 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58003293/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com