繁体   English   中英

在Javascript中,如何将1.00表示为JSON对象中的数字?

[英]In Javascript ,how to represent 1.00 as a number in a JSON object?

我想要做的就是创建一个像这样的JSON字符串:

'{  "a" : 1.00 }'

我努力了

var n = 1.00;
var x = { a : n };
console.log(JSON.stringify(x)); // Gives {"a":1}

var n = 1.00;
var x = { a : n.toFixed(2) };
console.log(JSON.stringify(x)); // Gives {"a":"1.00"}

var x = { x : 1.00 };    
x = JSON.stringify(x , function(key,val ){
    if( typeof val === "number")
        return val.toFixed(2);

    return val;
});

console.log(x); // Gives {"x":"1.00"}

甚至可以在javascript中将'{“a”:1.00}'表示为JSON字符串? 如果是,我该怎么办?

JSON中的数字没有任何特定的精度。 数字表示为重现它所需的最短符号。

1.00与值1相同,因此它是以JSON表示的方式。

如果您特别想要以1.00格式表示数字,那么您不能将其存储为数字,则需要使用字符串。

字符串'{"x":1.00}'是有效的JSON,但它与'{"x":1}'具有相同的含义。

toFixed()返回一个字符串,因此总是会产生“1.00”而不是1.00。

我可以想到获得一个带有1.00作为值的JSON字符串的唯一方法就是像上面的toFixed()一样创建它,然后通过从“1.00”中删除引号字符来修改字符串。

您也可以在没有toFixed()的情况下创建它,然后进入并添加.00个字符。

无论哪种方式,它都让我感到更省力,但它应该是可能的。 我想不出直接做到这一点的方法。

您要实现的目标超出了序列化对象概念的范围。 序列化是以最一般的方式呈现数据,因此该序列化对象的发送者和接收者都能够以任何编程语言理解。 您尝试表示的此数据类型的定义在JSON中称为“数字”。 您应该将其解析或转换为您需要的类型(这是反序列化概念的一部分,通常由JSON解析方法完成)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM