当前位置: 代码迷 >> 综合 >> .NetCore3.1 API 返回Json中文乱码设置
  详细解决方案

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

热度:79   发布时间:2024-01-28 21:13:02.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();}

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

  相关解决方案