var obj = new { age = 11, name = "可乐" };
//设置编码范围,C#没有默认全范围编码
var options = new JsonSerializerOptions
{
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All),
WriteIndented = true
};
var jsonString = JsonSerializer.Serialize(obj, options);
var obj1 = JsonSerializer.Deserialize<object>(jsonString);
结论
不建议从Newtonsoft.Json(检查nj)迁移到System.Text.Json(简称stj),有如下几点差异性:
1.stj区分大小写
2.stj对注释引发异常
3.stj不会处理尾随逗号
4.stj最大深度64
因为stj更考虑性能方面,因此限制更严格
参考
如何使用自訂字元編碼 System.Text.Json 如何使用 System.Text.Json 自定义字符编码 如何在 .NET 中序列化和還原序列化 (封送處理和 unmarshal) JSON c# .net core 返回json 中文字符编码被转换或乱码问题 How to use a JSON document, Utf8JsonReader, and Utf8JsonWriter in System.Text.Json 如何从 Newtonsoft.Json 迁移到 System.Text.Json
上一篇:获取配置
下一篇:WorkerService入门