2012-04-27 46 views
0

我有一個關於JSON的問題。我使用的是jQuery插件,它預計JSON結構如下:如何訪問JSON密鑰內的Json鍵

[ { key: "Id" }, 
      { key: "Username" }, 
        { key: "Age" } 
     ], 

但我的JSON的樣子:

[{ 
     "Employee1": 
     { 
      "ID": 43036, 
      "Name": XYZ, 
      "Age": 21 
     }, 
     "Employee2": 
     { 
      "ID": 30436, 
      "Name": MNP, 
      "Age": 23 
     } 
    }] 

現在我不想改變我的代碼,有沒有什麼解決方案,使我可以在不使用「Employee」的情況下將Id,Name傳遞給我的插件json。 我需要我的JSON爲:

[   
     { 
      "ID": 43036, 
      "Name": XYZ, 
      "Age": 21 
     }, 
     { 
      "ID": 30436, 
      "Name": MNP, 
      "Age": 23 
     } 
    ] 

由於提前

+0

我真的不明白你在問什麼。您是否要將第二個JSON字符串轉換爲第一個JSON字符串的格式,還是要使用由第二個JSON字符串創建的對象來創建格式正確的新JSON對象? – 2012-04-27 15:03:52

+0

我被困在「我有一個關於JSON的問題」,沒有什麼更有意義的了......你能解釋一下你想要的嗎?你只想要鑰匙?最有可能重複的http://stackoverflow.com/questions/18912/how-to-find-keys-of-a-hash – 2012-04-27 15:05:07

+0

是的,實際上插件只需要在示例中是Id,Name和Age的鍵。它通過使用這些值生成一個網格,但在我的JSON中有一個父鍵(Employee)與每個ID,名稱一起提供。我想JSON看起來像[{ 「ID」:43036, 「名稱」:XYZ, 「時代」:21 },{ 「ID」:30436, 「名稱」:MNP, 「時代」: 23 } ] – 2012-04-27 15:08:09

回答

0

像這樣的事情?

var myObj = [{ 
     "Employee1": 
     { 
      "ID": 43036, 
      "Name": XYZ, 
      "Age": 21 
     }, 
     "Employee2": 
     { 
      "ID": 30436, 
      "Name": MNP, 
      "Age": 23 
     } 
    }]; 

var jsonObj = []; 
$.each(myObj[0], function(key, val){ 
    jsonObj.push({ key: val.ID }); 
    jsonObj.push({ key: val.Name }); 
    jsonObj.push({ key: val.Age }); 
}); 
0

你需要一個簡單的功能是什麼推對象內的值,

var data = [{ 
    "Employee1": { 
     "ID": 43036, 
     "Name": 'XYZ', 
     "Age": 21 
    }, 
    "Employee2": { 
     "ID": 30436, 
     "Name": 'MNP', 
     "Age": 23 
    }}]; 

data = data[0]; 
var output = []; 
for (i in data) { 
    output.push(data[i]); 
} 

DEMO

注意:您發佈的JSON是無效的,XYZ和MNP是字符串值和我想其他數字也是..我把驗證留給你。