我有一个包含float类型编号的JSON文件。在使用react应用程序中的文件之前,我想将它们转换为小数点后的两位。我知道我需要使用number.toFixed(2)来实现这一点。我如何在JSON文件中实现这一点?文件的示例:
[
{
"module": "prado2",
"current_value": 3437.0,
"value_avg": 3436.5,
"value_avg_plus_stdv": 3457.7132034355964,
"value_avg_minus_stdv": 3415.2867965644036,
},
{
"module": "prado2",
"current_value": 3437.0,
"value_avg": 3436.5,
"value_avg_plus_stdv": 4457.7132034355964,
"value_avg_minus_stdv": 3425.2867965644036,
}
]最后的结果应该是:
[
{
"module": "prado2",
"current_value": 3437.0,
"value_avg": 3436.5,
"value_avg_plus_stdv": 3457.71,
"value_avg_minus_stdv": 3415.29,
},
{
"module": "prado2",
"current_value": 3437.0,
"value_avg": 3436.5,
"value_avg_plus_stdv": 4457.71,
"value_avg_minus_stdv": 3425.29,
}
]谢谢!
发布于 2020-06-19 09:36:22
您可以将reviver函数传递给JSON.parse方法,以规定如何在返回之前转换解析产生的值:
JSON.parse(jsonString, (key, value) =>
typeof value === "number" ? Math.round(value * 100) / 100 : value
);将Math.round(value * 100) / 100替换为100) / 100或+value.toFixed(2)或其他您想要的方法。
更多关于JSON.parse的信息
发布于 2020-06-19 09:29:45
使用toFixed
像这样的
[
{
"module": "prado2",
"current_value": 3437.0,
"value_avg": 3436.5,
"value_avg_plus_stdv": 3457.7132034355964,
"value_avg_minus_stdv": 3415.2867965644036,
},
{
"module": "prado2",
"current_value": 3437.0,
"value_avg": 3436.5,
"value_avg_plus_stdv": 4457.7132034355964,
"value_avg_minus_stdv": 3425.2867965644036,
}
].map(x => ({
...x,
value_avg_plus_stdv: +x.value_avg_plus_stdv.toFixed(2),
value_avg_minus_stdv: +x.value_avg_minus_stdv.toFixed(2)
}))编辑- toFixed将返回一个字符串,因此添加一个+将其转换为数字。
发布于 2020-06-19 09:37:11
您需要循环对象数组,并在每个number属性上应用您提到的函数。
首先,您需要解析该JSON以获取JavaScript对象,然后应用类似于以下代码片段的内容:
const newArray = yourArray.map((obj) => ({
...obj,
value_avg_plus_stdv: +obj.value_avg_plus_stdv.toFixed(2),
value_avg_minus_stdv: +obj.value_avg_minus_stdv.toFixed(2),
}));toFixed()上的+将将字符串转换为数字
https://stackoverflow.com/questions/62467154
复制相似问题