.NetCore3.1 API 返回Json中文乱码设置

16 篇文章 0 订阅
6 篇文章 0 订阅

今天用3.1尝试了一下API返回,代码如下

[Route("get")]
        public IActionResult Get(long id) {
            return new JsonResult(new User { 
                Id=1,
                Name="张三",
                Age=20
            });
        }

运行返回结果中文名称乱码如下图

这个原因是Json序列化的时候没有对中文进行处理,我们可以通过设置JsonSerializerOptions设置,这里有两种方式一种直接传递设置,代码如下

[Route("get")]
        public IActionResult Get(long id) {
            var options = new JsonSerializerOptions
            {
                Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)
            };
            return new JsonResult(new User
            {
                Id = 1,
                Name = "张三",
                Age = 20
            }, options);
        }

还有一种就是在startup里面全局设置,代码如下

public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers().AddJsonOptions(cfg =>
            {
                cfg.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
            });
            //services.AddControllers();
        }

这样就不会有乱码了,全局配置也方便,不用每个地方都要

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值