簡體   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