首页 问答 System.Text.Json 序列化中文时哪个 Encoder 性能更好
问题详情

System.Text.Json 序列化时如果想让中文字符保持原样,需要设置 JsonSerializerOptions.Encoder,Encoder 有2个选择:

1)JavaScriptEncoder.UnsafeRelaxedJsonEscaping

services.AddControllers().AddJsonOptions(options =>
{
    options.JsonSerializerOptions.Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping;
});

2)JavaScriptEncoder.Create(UnicodeRanges.All)

services.AddControllers().AddJsonOptions(options =>
{
    options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All); 
});

请问哪个性能更好一些?

回答

几乎没有差别 UnsafeRelaxedJsonEscaping 也是 UnicodeRanges.All, 然后要编码的字符个数有一点差异, 例如 UnsafeRelaxedJsonEscaping 对于 html的 ‘<‘, ‘>’ 之类的也不会编码, 但是内部判断char要不要编码用的是一个bitmap, 所以性能上可以说几乎没的差别. 应该更多从使用case来判断用哪一个.

PS: 他们底层的实现是同一个, 只是根据配置来修改 要编码的char bitmap.

版权:言论仅代表个人观点,不代表官方立场。转载请注明出处:https://www.stntk.com/question/2529.html

发表评论
暂无评论

还没有评论呢,快来抢沙发~

点击联系客服

在线时间:8:00-16:00

客服QQ

70068002

客服电话

400-888-8888

客服邮箱

70068002@qq.com

扫描二维码

关注微信公众号

扫描二维码

手机访问本站