首页 新闻 搜索 专区 学院

.net 将对象序列化为json时,会把decimal自动转成string

0
[待解决问题]


怎样才能不让它自动转换!!!

大哥写代码的主页 大哥写代码 | 菜鸟二级 | 园豆:202
提问于:2022-08-25 21:50
< >
分享
所有回答(5)
0

将对象序列化json字符串,整个结果都是字符串,有啥类型区分?

反序列化的时候根据需要再转换类型呗

luzemin | 园豆:626 (小虾三级) | 2022-08-26 09:12

我序列化后拿到json,验签使用

支持(0) 反对(0) 大哥写代码 | 园豆:202 (菜鸟二级) | 2022-08-26 09:27
0

你用什么方式序列化的?

我用 System.Runtime.Serialization.Json 名字空间下的类进行 json 序列化,并没有把 decimal 转换为字符串

血狼一族 | 园豆:60 (初学一级) | 2022-08-26 10:19

我试下这个

支持(0) 反对(0) 大哥写代码 | 园豆:202 (菜鸟二级) | 2022-08-26 13:02
0

System.Text.Json 没有这个问题

decimal z = 1m / 3m;
var json = System.Text.Json.JsonSerializer.Serialize(new { z });
Console.WriteLine(json);
// output: {"z":0.3333333333333333333333333333}
dudu | 园豆:35066 (高人七级) | 2022-08-26 11:39

我的这个小数点后面,只会是0 ,换成其它1-9任意数字,都不会自动转换。只有零的情况下不行

支持(0) 反对(0) 大哥写代码 | 园豆:202 (菜鸟二级) | 2022-08-26 13:01

我项目太老了,好像使用不了这个

支持(0) 反对(0) 大哥写代码 | 园豆:202 (菜鸟二级) | 2022-08-26 13:32
0

Newtonsoft.Json 没有这个问题吧,你传的两张图片是一样的,序列化后的字符串是什么样的图片没传啊?

shangsharon | 园豆:251 (菜鸟二级) | 2022-08-26 14:37

改了,再看下

支持(0) 反对(0) 大哥写代码 | 园豆:202 (菜鸟二级) | 2022-08-26 14:38

@大哥写代码: 是不是加了全局的序列化设置,还是程序包低版本的问题,版本号是多少

支持(0) 反对(0) shangsharon | 园豆:251 (菜鸟二级) | 2022-08-26 14:47

@shangsharon:

支持(0) 反对(0) 大哥写代码 | 园豆:202 (菜鸟二级) | 2022-08-26 14:49

@大哥写代码: 以前老版本应该就是这么序列化的吧,看看能不能升级到高一点的版本

支持(0) 反对(0) shangsharon | 园豆:251 (菜鸟二级) | 2022-08-26 14:53

@shangsharon: 整个系统都是低版本的,一换就错了

支持(0) 反对(0) 大哥写代码 | 园豆:202 (菜鸟二级) | 2022-08-26 15:07
0

以前,没有decimal这个类型,你把它转成double或者float,然后再转json就可以了。
要么,做个新类,把旧类的数据转成新类的,然后转json。
要么,就直接把旧类的decimal改成double然后试一下。

ensleep | 园豆:1682 (小虾三级) | 2022-08-31 22:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册