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不是一个函数