2012-10-24 39 views
0

我有一個index.html文件調用main.php返回一個json對象就好了。如何解析數組從json返回從PHP

main.php返回此

{ 
    "products": [ 
     { 
      "id": "1", 
      "txt": "Bar", 
      "image": "", 
      "page": "" 
     }, 
     { 
      "id": "2", 
      "txt": "Car", 
      "image": "", 
      "page": "" 
     }, 
     { 
      "id": "3", 
      "txt": "Far", 
      "image": "", 
      "page": "" 
     } 
    ], 
    "success": 1 
} 

在Java中有json.getJSONArray(TAG_PRODUCTS);

但是....我在這裏使用的是HTML和javascript ... 所以在我的html文件中我有以下的 如何從我的json返回的數據中抽出產品數組?

$.ajax({ 
    type: 'POST', 
    dataType: 'json', 
    url: 'http://localhost:8888/HelloWorld/main.php', 
    contentType: "application/json; charset=utf-8", 
    success: function (data) { 
     var names = data 
     $('sa_content').append('<select name="input_4">'); 
     $.each(data, function(index, element) { 

      alert("index: " + index + ", element.cf_id: " + element); 

     }); 
     $('sa_content').append('</select>'); 
    }, 
    error: function(){ 
     $('#sa_content').append('<li>There was an error loading the feed'); 
    } 
}); 

當我運行index.html頁面,我得到以下警報

index = products, element = [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object] 

index = success, element = 1 

那麼,如何拉動產品陣列出來的JSON,並通過迭代它獲得id,txt,圖像,頁面的值?

提前感謝您的時間。 Dean-O

回答

3

嘗試使用這個作爲成功的功能:

function (data) { 
    var products = data.products; 

    for (var i = 0; i < products.length; i++) { 
     var product = products[i]; 
     alert(product.id + " " + product.txt + " " + product.image + " " + product.page); 
    } 
} 

應該在所有的產品迭代,並提醒你的數據。 然後您可以修改代碼以滿足您的需求。

+0

非常好......謝謝你清理它。像冠軍一樣工作。 –

0

如果您確定代碼是安全的,您可以使用JSON.parse或簡單地使用eval('(' + json + ')');

0

你越來越琳琅滿目的產品,所以要遍歷數組:

success: function (data) { 
    var names = data 

    for(i = 0; i < data.products.length; i++) { 
     //Do what you want. 
     var id = data.products[i].id; 
    } 
} 
0

如果你的頁面只返回的JSON,那麼XHR對象,回來從你的jQuery阿賈克斯應該包含從該數據構建的JavaScript對象。如果情況並非如此,那麼頁面出現問題,例如返回的不止是json編碼的字符串。