JSON 将数字解析为字符串

问题描述 投票:0回答:3

在 javascript 中将 JSON 数字解析为字符串的最佳方法是什么

Example:
{
  "a": 10.00
}

通知 我无法控制值 10.00。 我无法在那里添加“+''”。 我想保留小数位,但不规定必须有 2 位小数。

结果应该是 10.00 而不是 10

javascript json parsing
3个回答
9
投票

如果您需要完全相同的小数位数,唯一的方法是 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));


0
投票

在解析 JSON 字符串并将字符串

a
转换为数字
10.00
之前,您可以使用正则表达式提取
10
属性的值:

const jsonString = `{
  "a": 10.00
}`
const aString = jsonString.match(/[,{]\s*\"a\":\s*([0-9.]+)/m)[1]
console.log(aString)


0
投票

您可以将 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);

© www.soinside.com 2019 - 2024. All rights reserved.