2013-08-01 158 views
0

我在使用jQuery打印JSON數據時遇到了問題。從API打印JSON輸出

JSON輸出:

[ 
{"id":"1", "product_name":"banana", "price":"10"}, 
{"id":"2", "product_name":"apple", "price":"15"}, 
{"id":"3", "product_name":"pineapple", "price":"20"} 
] 

我用getJSON()從API的JSON輸出檢索數據。

要打印的JSON輸出,我用jQuery的:

data = $.parseJSON(data); 
$.each(data, function(key, value) { 
    $('p').append(key + ':' + value); 
}); 

上面的代碼似乎沒有輸出任何東西一樣。

我哪裏錯了?

+1

您的JSON是無效嘗試解析[這裏](HTTP://json.parser .online.fr /)並再次檢查 –

+0

DKM是正確的,你需要雙引號在JSON中的字符串(你的ID和價格也可以是沒有引號的普通數字) – AardVark71

回答

1

首先,你的約會似乎已經是JSON,所以你不應該需要$.parseJSON(data);。您正在循環數組中的每個項目。該陣列的每個項目都是一個對象,所以你再需要遍歷每個對象的屬性也:Live demo (click).

var data = [ 
    { 
    "id":"1", 
    "product_name":"banana", 
    "price":"10" 
    }, 
    { 
    "id":"2", 
    "product_name":"apple", 
    "price":"15" 
    }, 
    { 
    "id":"3", 
    "product_name":"pineapple", 
    "price":"20" 
    } 
]; 

$.each(data, function(i, obj) { 
    $.each(obj, function(key, value) { 
    $('p').append(key + ':' + value); 
    }); 
}); 
0

首先,你的JSON是無效...
其次,你不需要,如果你的使用getJSON()和服務器響應是JSON correctly..remove該行解析您的JSON,它應該工作

試試這個

$.each(data, function(key, value) { 
    $('p').append(key + ':' + value); 
}); 
+0

我刪除了解析到JSON,這是我得到的輸出0:[對象對象] 1:[對象對象] 2:[對象對象]' – h4kl0rd