读取和写入以.0结尾的JSON的浮点值
我有这个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 ] }
问题是如果float值以.0
结尾。
但是我需要保留原来的这些值。
我可以以某种方式读取像string一样的float值,然后像float值那样写
(即使以.0
结尾)?
PS Node.js v7.7.4
对于他们每个人你可以使用模数运算符( %
)来确定它是否是一个整数,如果是这样,将其转换为一个string,并追加".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);