使 Newtonsoft JsonConvert 默认为 Int32 而不是 Int64

2023-11-26

我通过这样做将 Json 转换为 ExpandoObject

JsonConvert.DeserializeObject<ExpandoObject>(jsonText)

我得到的整数是 Int64,但我更喜欢 Int32。

JsonConvert 中是否有任何设置可以用来更改默认行为?


引用一个帖子詹姆斯·牛顿·金(Newtonsoft.JSON 的制造者)this thread:

Json.NET 默认将整数值读取为 Int64,因为无法知道该值应该是 Int32 还是 Int64,而且 Int64 不太可能溢出。对于类型化属性,反序列化器知道将 Int64 转换为 Int32,但因为您的属性是非类型化的,所以您将获得 Int64。

此类问题之前曾在 SO 上被问过。基本上可以归结为:您需要创建一个自定义转换器。如果不适用于您的对象,则适用于整数。

有关这方面的参考信息,请参阅this用户回答drzaus谁解决了这个问题,以及this one by enzi,谁会更详细地介绍。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使 Newtonsoft JsonConvert 默认为 Int32 而不是 Int64 的相关文章

随机推荐