我正在放置一个带有JSon对象的JSON对象并添加另一个值,但是当我打印它时它会给出[Object Object]。不以json格式给出值。代码如下。
var Json1 = {"name":"OMAR"};
var data=null;
var json2 = {"ID":12345 ,data:Json1 };
我很困惑,我做错了。任何帮助将不胜感激。
答案 0 :(得分:1)
您的第三行目前存在语法错误,因为:
所在的=
是Json1
,而且JavaScript区分大小写,因此您需要var json2 = {"ID":12345, data : Json1 };
中的大写J来匹配第一行上的变量(或将该变量更改为小写j):
json2.data.name
如果您这样做,则会发现"OMAR"
返回data
。
此外,data
变量和{{1}}作为第二个对象的属性并不是一回事。
此外,术语挑剔:there's no such thing as a JSON object。
有关使用JavaScript对象的更多详细信息,MDN有一篇标题为"Working with objects"的文章。
答案 1 :(得分:1)
您的代码中存在一些错误:
1.您无需定义变量以在另一个对象中添加对象。
var data = null; // you need not to define it
var json2 = {
"ID": 12345,
data = json1
};
2.Replace
var json2 = {
"ID": 12345,
data = json1
}; // wrong
与
var json2 = {
"ID": 12345,
"data": Json1
}; // right
正确代码:
var Json1 = {
"name": "OMAR"
};
var json2 = {
"ID": 12345,
"data": Json1
};
为了提醒其价值:
试试这个:JSON.stringify(json2);
答案 2 :(得分:1)
您的代码中有两个拼写错误:
var Json1 = {"name":"OMAR"};
var data=null;
var json2 = {"ID":12345 ,data:Json1 };
// ^ = should be :
// ^ json1 should be Json1
现在,如果您需要json2.data
中的值,请按以下方式检索:
console.log(json2.data.name); //=> "OMAR"
此外,您的代码可以重写为:
var json2 = { "ID":12345 ,data:{"name":"OMAR"} };