2012-11-24 125 views
0

我有一個JSON,我需要得到這個JSON,並將其放入html中作爲ul列表。它獲取對象的值並在html中顯示[object Object]。如果我修改json然後它的作品。所以在我的腳本中可能有些問題,我無法正確循環json文件。能有人幫助請:getJSON顯示[對象對象]而不是實際值

我的JSON是:

[ 
    { 
     "us":"USA" 
    }, 
    { 
     "fr":"FRANCE" 
    }, 
    { 
     "es":"Spain" 
    }, 
    { 
     "sa":"South Africa" 
    } 
] 

和JS IS

<script> 
    $.getJSON('jsonfile', function(data) { 
    var items = []; 
    $.each(data ,function(key,val) { 
     items.push('<li id="'+ key +'">' + val +'</li>'); 
    }); 
    $('<ul />' , { 
     'class':'new-div', 
     html:items.join('') 
    }).appendTo('body'); 
    }); 
</script> 

修訂JSON:

[ 
{ 
    "items": 
     { 
      "item": 
       [ 
        { 
         "id": "0001", 
         "type": "donut", 
         "name": "Cake", 
         "ppu": 0.55, 
         "batters": 
          { 
           "batter": 
            [ 
             { "id": "1001", "type": "Regular" }, 
             { "id": "1002", "type": "Chocolate" }, 
             { "id": "1003", "type": "Blueberry" }, 
             { "id": "1004", "type": "Devil's Food" } 
            ] 
          }, 
         "topping": 
          [ 
           { "id": "5001", "type": "None" }, 
           { "id": "5002", "type": "Glazed" }, 
           { "id": "5005", "type": "Sugar" }, 
           { "id": "5007", "type": "Powdered Sugar" }, 
           { "id": "5006", "type": "Chocolate with Sprinkles" }, 
           { "id": "5003", "type": "Chocolate" }, 
           { "id": "5004", "type": "Maple" } 
          ] 
        } 


       ] 
     } 
} 
] 
+0

你能說出你想要的結果嗎? 「迭代」有點太模糊 - 屏幕上應顯示哪些元素,以及它們包含的JSON數據是什麼? – pimvdb

+0

@pimvdb:我需要這個json來解析我的方法:http://adobe.github.com/Spry/samples/data_region/JSONDataSetSample.html#Example10。輸出應該是如下圖所示的鏈接 – Mike

+0

的示例10看看http://stackoverflow.com/questions/11922383/i-have-a-nested-data-structure-json-how-can-access -a特定的價值。如果您知道JSON的結構,則訪問正確的值不應該很困難。 –

回答

3

data你遍歷是數組,其中包含對象。所以你的key將是0,1等,並且val將是在陣列中該位置的對象

您的JSON結構實際上使其輸出有點痛苦,因爲每個對象只有一個屬性,但屬性名稱因對象而異。您可以做到這一點,通過在對象屬性循環,即使有隻有一個:

var items = []; 
$.each(data ,function(outerKey, outerVal) { // <== Loops through the array 
    $.each(outerVal, function(key, val) {  // <== "Loops" through each object's properties 
     items.push('<li id="'+ key +'">' + val +'</li>'); 
    }); 
}); 

...但我改變JSON結構,而不是。例如,假設密鑰是唯一的,那麼您的原始代碼可以使用此結構:

{ 
    "us":"USA", 
    "fr":"FRANCE", 
    "es":"Spain", 
    "sa":"South Africa" 
} 
+0

如何使用我已經使用的方法獲得像我擁有的​​嵌套json。例如在你看來什麼是這個例子getjson的理想方法http://adobe.github.com/Spry/samples/data_region/JSONDataSetSample.html#Example10 – Mike

+1

@Mike:*「怎麼會得到一個嵌套的JSON如何我有,使用我用過的方法「*見答案的第一部分。 –

+0

如果您看到我更新的JSON,我再次顯示對象。所以它絕對取決於嵌套的級別。有沒有辦法適用於所有級別的json嵌套。對不起,如果我問啞巴問題,但我是新來json – Mike

相關問題