我无法在JQuery中解析JSON

时间:2015-07-06 12:32:51

标签: javascript jquery json

我有我的jquery函数,它返回格式的数据:

{"Suggestions":[{"name":"RR Restaurant","category_id":"166","locality":"Gayathri Nagar","listing_info":"listing","random_id":"1ll0f0wJ"},{"name":"Oko Restaurant","category_id":"166","locality":"Kumara Krupa","listing_info":"listing","random_id":"0F7ZGV9p"},{"name":"H2O Restaurant","category_id":"166","locality":"Maratha Halli","listing_info":"listing","random_id":"0JNPOyuP"},{"name":"Taj Restaurant","category_id":"166","locality":"Shivaji Nagar","listing_info":"listing","random_id":"7GeA0Kfq"},{"name":"PSR Restaurant","category_id":"166","locality":"Peenya Industrial Area","listing_info":"listing","random_id":"cRvJCwQ3"},{"name":"ac restaurant","category_id":"166","listing_info":"keyword"},{"name":"Indian Restaurant","category_id":"166","listing_info":"keyword"},{"name":"goan restaurant","category_id":"166","listing_info":"keyword"},{"name":"thai restaurant","category_id":"166","listing_info":"keyword"},{"name":"andhra restaurant","category_id":"166","listing_info":"keyword"}],"ImpressionID":"test"}

我想用不同的js变量中的“Name”和“Random Id”字段来解析相同的多个变量

$("#what").on("keypress", function() {
    $.ajax({
        type: "GET",
        cache: false,
        url: "/AutoComplete.do",
        data: {
            query: 'Pest',
            city: 'Bangalore'
        }, // multiple data sent using ajax
        success: function(data) {
            alert();
        }
    });
});

我的JSON对象似乎嵌套了“Suggestions”作为父级。请帮忙。

3 个答案:

答案 0 :(得分:1)

如果向$ .ajax函数添加属性,请确保是json解析:

 dataType: 'json'

修改

在字符串上方迭代,可以用于(in)或each()jquery

 json = "[{'key':'value'},{'key':'value']";
 for(var i in json) {
     console.log(json[i]); 
     //if you see in console [OBJECT Object] you are
     //in a new object you must to iterate nested of this.
 }

答案 1 :(得分:0)

$("#what").on("keypress", function() {
    $.ajax({
        type: "GET",
        dataType: "JSON", //You need this to be inserted in your ajax call.
        cache: false,
        url: "/AutoComplete.do",
        data: {
            query: 'Pest',
            city: 'Bangalore'
        }, // multiple data sent using ajax
        success: function(data) {
            alert();
        }
    });
});

插入 dataType 后,您可以执行此操作。

console.log(data.Suggestions);

另外,无论dataType如何,请查看以下网址的API文档。 http://api.jquery.com/jquery.ajax/

答案 2 :(得分:0)

如果使用GET方法,那么您指定的数据对象将作为成功方法的参数发送。

$("#what).on("keypress", function() {
    $.get("/AutoComplete.do", function(response) {
        var data = JSON.parse(response);
        //data.suggestions = [lots of objects];
        //data.suggestions[0].locality = "Gayathri Nagar"
    });
});