需求:system.text.json.JsonSerializer.Serialize(returnData) ,由于 returnData 对象种的的其中一个属性是中文的。当我调用上面这个方法时,序列化出来的还是转码之后的字符集。
我在 startup 设置了全局序列化配置项
services.AddControllers().AddJsonOptions(config =>
{
Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping;
});
结果控制器端调用 JsonSerializer.Serialize(returnData) 还是中文转码字符集
刚开始以为 UnsafeRelaxedJsonEscaping
没效果,就按 https://q.cnblogs.com/q/115234/ 上的问题全部来一遍,发现还是不行。
之后我做了以下措施:
在控制器注入 JsonOption 发现我之前加的全局设置都存在。但是不知在使用这个方法时没效果。
后来我在源码上看到这么一行代码
JsonSerializer.Serialize 在没有传 setting 的时候是调用了 JsonSerializerOptions.s_defaultOptions 这个单例对象,但是往后查我就不知道是在哪里进行赋值的了,而且在我另一个项目这么写是没问题的。
所以想请问下,这种情况是什么原因导致的?
备注:直接调用 JsonSerializer.Serialize(returnData, option)
这样是没有问题的
我所有的分都上了
相关问题
- How to force System.Text.Json serializer throw exc
- How to pretty-print (format) System.Text.JsonEleme
- Convert object to System.Text.Json.JsonElement
- How to ignore false values with System.Text.Json
- Azure Function v2 and system.text.json
相关文章
- [Serializable],序列化的类都满足什么样的要求??
- Is there a simple way to manually serialize/deseri
- How do you read a simple value out of some json us
- ASP.NET MVC Core 3.0 API Serialize Enums to String
- How to globally set default options for System.Tex
- .netcore3.1 内置序列化在设置全局序列化 Encoder 配置的情况下还是无效
- Operation is not valid due to the current state of
- 踩坑System.Text.Json序列化问题
.net core 3.1 还不支持全局设置 JsonSerializer 的 JsonSerializerOptions ,需要在 Serialize 方法中传入。
详见 How to globally set default options for System.Text.Json.JsonSerializer?