在 javascript 中将 JSON 数字解析为字符串的最佳方法是什么
Example:
{
"a": 10.00
}
通知 我无法控制值 10.00。 我无法在那里添加“+''”。 我想保留小数位,但不规定必须有 2 位小数。
结果应该是 10.00 而不是 10
如果您需要完全相同的小数位数,唯一的方法是 JSON 将值显示为字符串。如果您无法控制源,您可以在解析之前编辑 JSON,添加引号,但这可能会带来一些问题。这需要彻底测试。
json = '{ "a": 10.00, "b":2.1020, "d":0.20,"c": "21" }';
json = json.replace(/:\s*[^"0-9.]*([0-9.]+)/g, ':"$1"');
console.log(json);
console.log(JSON.parse(json));
在解析 JSON 字符串并将字符串
a
转换为数字 10.00
之前,您可以使用正则表达式提取 10
属性的值:
const jsonString = `{
"a": 10.00
}`
const aString = jsonString.match(/[,{]\s*\"a\":\s*([0-9.]+)/m)[1]
console.log(aString)
您可以将 JSON.parse 与 reviver 参数一起使用
const json = '{"a":{"b":0.1}}'
const data = JSON.parse(json, (_key, value, data) => typeof value === 'number' ? data.source : value)
console.log(data);