我有这个JSON文件:
{
"weight": 12.0,
"values": [
23.4,
16.5,
16.8,
5.0,
0.0,
0.0,
0.0
]
}
如果我尝试读取此文件然后将其写回(使用JSON.parse
和JSON.stringify
)
const fs = require('fs')
const json = JSON.parse(fs.readFileSync('test.json'))
console.log(json)
fs.writeFile('test2.json', JSON.stringify(json), (error) => {
if (error) console.log(error)
})
输出文件如下所示:
{
"weight": 12,
"values": [
23.4,
16.5,
16.8,
5,
0,
0,
0
]
}
问题是浮动值是否以.0
结尾
但我需要将这些值保留在原始值中。
我可以以某种方式读取浮点值,就像字符串一样,然后将其写为浮点值
(即使它以.0
结尾)?
P.S。 Node.js v7.7.4
答案 0 :(得分:2)
对于它们中的每一个,您可以使用模数运算符(%
)来确定它是否为整数,如果是,则将其转换为字符串并将".0"
附加到结尾它:
json.values.map(v => {
return v % 1 === 0 ? v + ".0" : v
})
var json = {
"weight": 12.0,
"values": [
23.4,
16.5,
16.8,
5.0,
0.0,
0.0,
0.0
]
}
var result = json.values.map(v => {
return v % 1 === 0 ? v + ".0" : v
})
console.log(result);