json对象内部的json无法正常处理

时间:2013-08-24 12:54:33

标签: javascript json

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

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

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

3 个答案:

答案 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"} };