将double值序列化为JSON字符串

时间:2014-01-28 22:27:51

标签: c# json javascriptserializer

我正在尝试将双值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>

2 个答案:

答案 0 :(得分:1)

如果您需要特定的文本格式,则应将其序列化为字符串。 JSON不是关于文本表示,而是关于准确地序列化和反序列化值。它只有一个“数字”数据类型;如果整数值最后缺少“.0”,那要么是因为规范说要按照这种方式进行,要么规范将其留给实现来决定。在许多应用程序中,每个整数保存2个字符的值可能很重要。

答案 1 :(得分:1)

没关系。 Javascript中的所有数字都是浮点数(IEEE 754双精度,确切地说):是否要说

  • var x = 1 ;
  • var x = 1.0 ;
  • { x : 1 }

净结果相同:x是浮点数,值为1.