如何在jQuery上循环这个JSON数组?

时间:2012-09-19 11:50:14

标签: php jquery ajax json loops

我有一个通过jQuery AJAX调用从PHP脚本返回的二维JSON数组。我一直在浏览试图找出如何遍历每一行并显示div中的每个条目,但我很困惑并且不确定在这种特殊情况下如何做到这一点。

以下是服务器返回的JSON示例:

{"location_id":"505","location_name":"University of the Arts London","location_type":"uni","location_num_listings":"22","location_num_users":"187","relevancy":"2"},
    {"location_id":"592","location_name":"London South Bank University","location_type":"uni","location_num_listings":"1","location_num_users":"1","relevancy":"2"},
    {"location_id":"591","location_name":"London Metropolitan University","location_type":"uni","location_num_listings":"47","location_num_users":"185","relevancy":"2"},
    {"location_id":"590","location_name":"University College London","location_type":"uni","location_num_listings":"29","location_num_users":"176","relevancy":"2"},
    {"location_id":"586","location_name":"St George's, University of London","location_type":"uni","location_num_listings":"9","location_num_users":"4","relevancy":"2"},

到目前为止,这是我的脚本:

<script type="text/javascript">
    $("#directory_search_input").keyup(function() {
        $("#directory_search_results").html('');
        var regionvalue = $(this).val();
        var jsonresult;
        var url = '<?php echo site_url('ajax/ajax_default/directory_search')?>';
        $.post(url,{input_val:regionvalue}, function(data) {
            var results = jQuery.parseJSON(data);
            $.each(results, function() {
                $.each(this, function(index, value) {
                    $("#directory_search_results").append(/*Append a new div for each row returned*/);
                });
            }); });

示例所需输出:

位置ID:505, 地点名称:伦敦艺术大学

位置ID:592, 地点名称:伦敦南岸大学

等等

3 个答案:

答案 0 :(得分:5)

var results = $.parseJSON(data);
$.each(results, function(i, result) {
    $("#directory_search_results").append('<div>Location ID: '+result.location_id+' Location Name: '+result.location_name+'</div>');
});

JSFiddle Example

答案 1 :(得分:2)

$.each(data, function (index, value) {
            $("#SearchResults").append("<div>").append("Location Id  :" + value.location_id + ", Location Name : " + value.location_name ).append("\div");
});

答案 2 :(得分:1)

假设您的json对象名为data,您可以执行以下操作:

$.each(data, function(key,value){
    //do all your code with key -> value pairs.
});

在此处查看示例:http://jsfiddle.net/3muwm/

当然这会使用jQuery