如何解决从ASP.NET Core Web API返回JSON关联数组的问题
我在ASP.NET Core 3.1中有一个Web API方法,该方法返回一个可枚举的对象列表:
public async Task<IEnumerable<MyObject>> Get()
默认情况下,Web API返回JSON。这一直很好,直到我向MyObject添加了Dictionary
由于JsonConvert仍然可以很好地序列化Dictionary,因此在该方法中手动进行序列化并不困难。但这意味着我要做出自己的JSON响应,并将其作为内容字符串返回,这似乎……不好。
我可以使用Web API可以正确序列化为JSON的另一种关联数组类型吗?还是有一种方法可以配置Web API以使用可以处理Dictionary的JSON序列化库?还是我只是为此方法制作自己的JSON响应?
编辑:要清楚一点,我很好奇这些可能性中的每种可能,每种优点或缺点是什么,以便我可以根据自己的情况选择一个好的解决方案。
解决方法
此答案来自@dbc。我没有意识到System.Text.Json很难对Dictionary进行序列化,而通常与Dictionary无关,而对于使用非字符串键的Dicitonary来说尤其如此。对于我们来说,编写一个转换器以将必要的Dictionary转换为字符串类型很简单,然后内置的JSON序列化就可以很好地处理它。
谢谢@dbc!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。