2013-08-01 124 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