我正在放置一个带有 JSon 对象的 JSON 对象并添加另一个值,但是当我打印它时它会给出 [Object Object]。不提供 json 格式的值。代码如下。
var Json1 = {"name":"OMAR"};
var data=null;
var json2 = {"ID":12345 ,data:Json1 };
我很困惑我在哪里做错了。任何帮助将不胜感激。
我正在放置一个带有 JSon 对象的 JSON 对象并添加另一个值,但是当我打印它时它会给出 [Object Object]。不提供 json 格式的值。代码如下。
var Json1 = {"name":"OMAR"};
var data=null;
var json2 = {"ID":12345 ,data:Json1 };
我很困惑我在哪里做错了。任何帮助将不胜感激。
您的第三行当前存在语法错误,因为 a:
是预期的=
,并且 JavaScript 也区分大小写,因此您需要大写 JJson1
以匹配第一行上的变量(或将该变量更改为小写 j):
var json2 = {"ID":12345, data : Json1 };
如果你这样做了,你会发现json2.data.name
返回"OMAR"
。
另外,data
变量和data
作为第二个对象的属性不是一回事。
此外,术语 nitpick:没有 JSON object 这样的东西。
有关使用 JavaScript 对象的更多详细信息,MDN 有一篇标题为“使用对象”的文章,很方便。
您的代码中有一些错误:
1.您无需定义变量即可将对象添加到另一个对象中。
var data = null; // you need not to define it
var json2 = {
"ID": 12345,
data = json1
};
2.更换
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);
您的代码中有两个错字:
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"} };