如何更新对象属性

时间:2015-08-12 10:50:08

标签: javascript json

我已经将一些数据解析为对象,我将以下输出提供给控制台

这里我想将内部值更改为600

console.log(res.INSTANCE_PO);
'[{external:500,internal:500}]'

我尝试使用res.INSTANCE_PO['internal'] = 600访问;哪个不起作用

这里我想将端口更新为600,我应该怎么做? 我尝试用res.VP_APP.PORT = 600更改它而没有成功

console.log(res.VP_APP);

'{"instance_id":"716","application_name":"A1","host":"Ro-d13444","port":500}'

4 个答案:

答案 0 :(得分:1)

您的JSON是一个字符串。您必须先将其转换为对象:

var instancePo = JSON.parse(res.INSTANCE_PO);
instancePo.internal = 600;

答案 1 :(得分:1)

  

假设res是JavaScript Array。

res.INSTANCE_PO是一个数组,因此您必须访问数组的第一个元素。更新它。所以试试

  res.INSTANCE_PO[0]['internal'] = 600

OR

  res.INSTANCE_PO[0].internal = 600
  

假设res是JSON字符串数组。

  • 将JSON字符串转换为javascript对象。

    res.INSTANCE_PO = JSON.parse(res.INSTANCE_PO)

  • 使用第一种方法。

Here是小提琴。

您可以使用typeof res.INSTANCE_PO

检查变量的类型

答案 2 :(得分:0)

归功于@Jivings,您必须先将字符串转换为具有JSON.parse的对象:

resJson = JSON.parse(res.INSTANCE_PO);

但是,如果res.INSTANCE_PO已经是对象,则不需要执行此步骤。

对象属性名称区分大小写,您必须使用:

resJson[0].internal=600;

resJson[0]['internal']=600

答案 3 :(得分:0)

console.log(res.INSTANCE_PO);
'[{external:500,internal:500}]'

外括号[]表示该对象实际上只包含一个项目的数组。您可以像这样得到数组的第一项:

console.log(res.INSTANCE_PO[0]);
'{external:500,internal:500}'