如何使用jQuery解析这个JSON?

时间:2011-10-09 10:53:26

标签: jquery json

我有一个像这样的JS函数

$.post(url, params, getFoodJSONText, "json");

和回调功能如下:

function getFoodJSONText(data) { parse JSON}

返回JSON,如下所示:

{"result":[{"foodid":"3","price":"42","restaurantid":"1","picture_url":"/canteen/picture/food/3.jpg","foodname":"????"},{"foodid":"4","price":"38","restaurantid":"1","picture_url":"/canteen/picture/food/4.jpg","foodname":"?????"},{"foodid":"5","price":"48","restaurantid":"1","picture_url":"/canteen/picture/food/5.jpg","foodname":"?????"},{"foodid":"6","price":"42","restaurantid":"2","picture_url":"/canteen/picture/food/6.jpg","foodname":"???"}]}

我尝试使用

$.each(data, function(i,item){         alert(item.foodname[i]);       });

但它不会起作用。

我已经搜索了很长一段时间但没有得到一个好的解决方案。

任何人都可以提出建议吗?

非常感谢你:D

3 个答案:

答案 0 :(得分:1)

item将是当前数组值,i将是当前索引。

只需使用item即可。您还需要迭代data.result,而不仅仅是data

答案 1 :(得分:1)

使用each

致电data.result
$.each(data.result, function(i, item) {
    alert(this.foodname);
});

迭代器函数将在结果数组的每个成员的上下文中调用,因此this将等于函数内的item

答案 2 :(得分:1)

试试这个:

function getFoodJSONText(data) {
    var food = $.parseJSON(data);

    //use food, for example:
    alert(food.result[0].foodid);
}