如何在javascript中从json数组中删除双引号

如何在javascript中从json数组中删除双引号,javascript,Javascript,我有一个数组: Var array=[{"name":"May","data1":"1121.0"}] 我想将其更改为: Var array= [{"name":"May","data1":1121.0}] 看来这个问题以前已经有人回答过了 我来总结一下 for(var i = 0; i < objects.length; i++){ var obj = objects[i]; for(var prop in obj){ if(obj.hasOwnPro

我有一个数组:

Var array=[{"name":"May","data1":"1121.0"}]
我想将其更改为:

Var array= [{"name":"May","data1":1121.0}]

看来这个问题以前已经有人回答过了

我来总结一下

for(var i = 0; i < objects.length; i++){
    var obj = objects[i];
    for(var prop in obj){
        if(obj.hasOwnProperty(prop) && obj[prop] !== null && !isNaN(obj[prop])){
            obj[prop] = +obj[prop];   
        }
    }
}

console.log(JSON.stringify(objects, null, 2));
for(var i=0;i

这确实存在一个错误,其中0变为null。

您希望将映射到
“data1”
键的值转换为
数字,而不是
字符串

在JavaScript中有很多方法可以实现这一点,但最好的方法是使用
Number.parseFloat
如下:

var array = [{"name":"May","data1":"1121.0"}];
array[0]["data1"] = Number.parseFloat(array[0]["data1"]);

console.log(array[0]["data1"]); // 1121
如果需要对
数组中的多个对象执行此操作,可以执行以下操作

var array = [{"name":"May","data1":"1121.0"}, {"name":"May","data1":"1532.0"}, etc.] // Note that this is not valid JavaScript
array.map(obj => {obj["data1"] = Number.parseFloat(obj["data1"]); return obj;});

如果我理解得很好,您只想将
data1
的值从
“1121.0”
转换为
1121.0
,换句话说,从字符串转换为数字

要仅转换该密钥(data1),您只需要以下内容:

array[0].data1 = parseFloat(array[0].data1)

如果这不是您想要的,请更好地解释您的问题

您可以使用
Number.isNaN
进行检查,并尝试使用
+
运算符转换为数字。如果返回true,则不执行任何操作。如果为false,则将参数的值更改为强制转换编号

var数组=[{“name”:“May”,“data1”:“1121.0”}];
array.forEach(数据=>{
对于(让输入数据)编号.isNaN(+data[key])| |(data[key]=+data[key])
});

console.log(数组)请阅读,您知道哪些字段是数字吗?如果是,则循环并转换它们。
“0”
通过加法运算符转换为数字不会变为null。另外,我认为没有必要使用
hasOwnProperty
——它是JSON。它不是从任何东西继承的。@zfrisch。要么是JSON(即字符串),要么是对象。@str你说得对,就我而言,100%是用词不当,但还是有点验证了我所说的。