求net core3中json序列化时,将null值转化成""的方法,卡了两天了

荣蓝科创 2020-02-12 12:12:45
尝试着使用AddJsonOptions还有AddNewtonsoftJson,都没能实现将null转化成"",求大家帮忙给看看怎么做。
services.AddControllers().AddJsonOptions(options => {
options.JsonSerializerOptions.Converters.Add(new NullJsonFmt());
});

services.AddControllers().AddNewtonsoftJson(options => {
options.SerializerSettings.Converters.Add(new NTNullJsonFmt());
});
...全文
803 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
荣蓝科创 2020-02-25
  • 打赏
  • 举报
回复
引用 6 楼 的回复:
一般,我在查询sql或者 ef结果集的时候,就已经处理了。
没敢这么处理,怕内部程序用到有问题,只是给前端返回数据时需要。
荣蓝科创 2020-02-25
  • 打赏
  • 举报
回复
引用 5 楼 by_封爱 的回复:
有个奇葩的办法... 在输出json的时候 把null替换成"" ..

return userinfo.json().replace(": null",": \"\"");
也是一种思路。
荣蓝科创 2020-02-25
  • 打赏
  • 举报
回复
引用 4 楼 github_36000833 的回复:
建议还是前端处理。 null表示‘尚未设置’‘不知道’的意思; ""表示‘已经设置’,设置值是空字符串。 在数据源进行展现处理是编程一忌。 在团队合作下,更容易造成别人的困扰。
这样处理只是对于前端,而非内部处理用,当返回给前端null的时候,显示null反而给用户增加的麻烦。
正怒月神 版主 2020-02-14
  • 打赏
  • 举报
回复
一般,我在查询sql或者 ef结果集的时候,就已经处理了。
by_封爱 2020-02-13
  • 打赏
  • 举报
回复
有个奇葩的办法... 在输出json的时候 把null替换成"" ..

return userinfo.json().replace(": null",": \"\"");
github_36000833 2020-02-13
  • 打赏
  • 举报
回复
建议还是前端处理。 null表示‘尚未设置’‘不知道’的意思; ""表示‘已经设置’,设置值是空字符串。 在数据源进行展现处理是编程一忌。 在团队合作下,更容易造成别人的困扰。
荣蓝科创 2020-02-12
  • 打赏
  • 举报
回复
跟@by_封爱 说的一样,是用于前端调用的,返回null前端操作时还得先删除,使用你说的这个方法,确实可以实现不返回null,返回“”了,达到了目标,但是这样所有的字段都要处理一遍,有没有全局的方法啊,^_^
by_封爱 2020-02-12
  • 打赏
  • 举报
回复
引用 1 楼 github_36000833 的回复:
null和""是两码事,犯不着也不应该把null转化为""。
他的需求应该是 在返回的时候 返回空字符串 而不是null否则前台调用呈现的时候 可能会在前台显示null这些东西. 所以如果是序列化 我建议把字段设置默认值吧..

public string a{get;set;}="";
而且我记得 牛顿里好像有一个序列化的重载 好像是可以把null弄成"" ..
github_36000833 2020-02-12
  • 打赏
  • 举报
回复
null和""是两码事,犯不着也不应该把null转化为""。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧