-3

我正在放置一个带有 JSon 对象的 JSON 对象并添加另一个值,但是当我打印它时它会给出 [Object Object]。不提供 json 格式的值。代码如下。

var Json1 = {"name":"OMAR"};
var data=null;
var json2 = {"ID":12345 ,data:Json1 }; 

我很困惑我在哪里做错了。任何帮助将不胜感激。

4

3 回答 3

1

您的第三行当前存在语法错误,因为 a:是预期的=,并且 JavaScript 也区分大小写,因此您需要大写 JJson1以匹配第一行上的变量(或将该变量更改为小写 j):

var json2 = {"ID":12345, data : Json1 };

如果你这样做了,你会发现json2.data.name返回"OMAR"

另外,data变量和data作为第二个对象的属性不是一回事。

此外,术语 nitpick:没有 JSON object 这样的东西

有关使用 JavaScript 对象的更多详细信息,MDN 有一篇标题为“使用对象”的文章,很方便。

于 2013-08-24T13:02:31.457 回答
1

您的代码中有一些错误:

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);

于 2013-08-24T13:03:17.537 回答
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"} };
于 2013-08-24T13:04:00.530 回答