我有对象msg.data
,其中包含:
{
"user_id": 1,
"success": "true"
}
我想将name
添加到此列表中:
{
"user_id": 1,
"success": "true",
"name" : "giri"
}
我试过了:
msg.data.name = "giri";
但是当我打印出msg.data
时,我总是得到初步结果。
有人知道这样做的正确方法吗?
答案 0 :(得分:1)
我刚在控制台中试过这个,它对我有用:
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
),因为它会通过引用显示当前对象(在您查看时可能会有所不同)安慰)。您可以阅读this帖子以获取更多相关信息。
答案 1 :(得分:1)
取决于JOIN
。如果它是一个对象,那么使用typeof msg.data
添加更新成员应该很简单。您可以按如下方式添加名称属性
.
如果是json字符串,那么你需要将其解析为object,然后使用msg.data.name = "haseeb";
.
答案 2 :(得分:1)
如果您正在使用
msg = {};
或msg.data = {}
它作为对象
您可以动态添加任何变量
msg.firstvar=""
msg.Secondvar=""
msg.Thirdvar=""
msg.data.firstvar=""
msg.data.Secondvar=""
msg.data.Thirdvar=""
答案 3 :(得分:0)
这是一种简单的方法,
我假设变量是一个创建的动态对象, 对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
});
}
答案 4 :(得分:0)
但是当我打印出msg.data时,我总是得到初始结果。
意味着msg.data实际上并不存在,它会产生" undefined" (最有可能的)。
使用调试器(或在控制台中打印出来)msg。
的内容