2013-08-24 33 views
-3

我把一個JSon對象與添加另一個值的JSON對象,但是當我打印它給出[對象對象]。不以json格式給出值。代碼如下。在json對象內部的json處理不當

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

我很困惑,我做錯了。任何幫助將不勝感激。

+0

請粘貼您在其中打印的帖子噸。 – Reflic

+0

抱歉它寫錯了,它的var json2 {「ID」:12345,data:Json1};但是我在打印json2時得到了[object Object] – Omar

回答

1

有一些錯誤代碼:

1.You不需要定義一個變量來增加另一個對象中的對象。

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

1

你的第三個系列目前有語法錯誤,因爲:預計在=是,也JavaScript是大小寫敏感的,所以你需要一個大寫的J Json1相匹配,對第一行的變量(或更改變量小寫的j)的:

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

如果你這樣做,你會發現,json2.data.name返回"OMAR"

此外,data變量和data作爲第二個對象的屬性不是一回事。

此外,術語nitpick:there's no such thing as a JSON object

有關使用JavaScript對象的更多詳細信息,MDN的文章標題爲"Working with objects"

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