我正在尝试将双值1.0序列化为JSON值1.0。但是,以下代码输出1而不是1.0:
var jsSerializer = new JavaScriptSerializer();
var json = jsSerializer.Serialize(1.0);
Console.WriteLine(json); // actual: 1, expected: 1.0
有没有人知道如何做到这一点?
我虽然通过扩展JavaScriptConverter
为双重类型创建自定义转换器,但问题是Serialize
方法应该返回IDictionary<string, object>
。
答案 0 :(得分:1)
如果您需要特定的文本格式,则应将其序列化为字符串。 JSON不是关于文本表示,而是关于准确地序列化和反序列化值。它只有一个“数字”数据类型;如果整数值最后缺少“.0”,那要么是因为规范说要按照这种方式进行,要么规范将其留给实现来决定。在许多应用程序中,每个整数保存2个字符的值可能很重要。
答案 1 :(得分:1)
没关系。 Javascript中的所有数字都是浮点数(IEEE 754双精度,确切地说):是否要说
var x = 1 ;
var x = 1.0 ;
{ x : 1 }
净结果相同:x
是浮点数,值为1.