我已经将一些数据解析为对象,我将以下输出提供给控制台
这里我想将内部值更改为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}'
答案 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}'