Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何动态添加到此对象_Javascript_Json - Fatal编程技术网

Javascript 如何动态添加到此对象

Javascript 如何动态添加到此对象,javascript,json,Javascript,Json,我有一个对象msg.data,它包含: { "user_id": 1, "success": "true" } 我想在此列表中添加name: { "user_id": 1, "success": "true", "name" : "giri" } 我试过: msg.data.name = "giri"; 但是当我打印出msg.data时,我总是得到最初的结果 有人知道这样做的正确方法吗?我刚刚在控制台中尝试了这个方法,它对我很有效: msg = {}; msg.data =

我有一个对象
msg.data
,它包含:

{    
"user_id": 1,
"success": "true"
}
我想在此列表中添加
name

{    
"user_id": 1,
"success": "true",
"name" : "giri"
}
我试过:

msg.data.name = "giri";
但是当我打印出
msg.data
时,我总是得到最初的结果


有人知道这样做的正确方法吗?

我刚刚在控制台中尝试了这个方法,它对我很有效:

msg = {};
msg.data = {    
"user_id": 1,
"success": "true"
};
msg.data.name = "giri";
msg; //Since we're in the console, this will output the variable. Otherwise use console.log(msg) to output the contents.

确保没有输入错误,并且没有其他内容正在修改对象。在您的语句前后执行
console.dir
。另外,请注意,控制台当时可能显示不正确的对象(如果您使用
console.log
),因为它通过引用显示当前对象(在您查看控制台时可能不同)。你可以阅读这篇文章来了解更多信息。

取决于msg.data的类型。如果它是一个对象,那么使用
添加新成员应该很简单。您可以按如下方式添加name属性

msg.data.name = "haseeb";
如果是json字符串,则需要将其解析为和对象,然后使用

var myobject = JSON.parse(msg.data);
myobject.name = "haseeb";
如果您正在使用

msg={}
msg.data={}
它作为一个对象工作

您可以动态添加任何变量

msg.firstvar=""
msg.Secondvar=""
msg.Thirdvar=""

msg.data.firstvar=""
msg.data.Secondvar=""
msg.data.Thirdvar=""

这里有一个简单的方法

我假设变量是一个动态对象, 对ajax的回应

var msg = {
    "user_id" : 1,
    "success" : true
};

if (msg.name == undefined ) {

    Object.defineProperty(msg, 'name', {
        value : 'giri',
        writable : false, // if you want the value to be change
        enumerable : true // if you want the object to property to be iterated
    });
}
同时阅读

但是当我打印msg.data时,我总是得到最初的结果

意味着msg.data实际上不存在,它会产生“未定义”(很可能)


使用调试器(或在控制台中打印)msg的内容。

尝试:
message.data.name
?很抱歉,这是一个打字错误。@GuruprasadRao不,这是一个对象而不是arraymag.data.name=“giri”@GuruprasadRao我得到错误
msg.data.push不是一个函数