如何从jquery获取JSON对象

如何从jquery获取JSON对象,jquery,json,Jquery,Json,我使用jquery,就像下面的代码一样。但我无法获取数据,因此请建议我如何执行此操作。似乎存在JSON对象。因此,我无法通过数组跟踪整个JSON { "data": { "4325474491990470056": { "hotel_geo_node": { "name": "The Capitol", "property_type": [ "Hotel"

我使用jquery,就像下面的代码一样。但我无法获取数据,因此请建议我如何执行此操作。似乎存在JSON对象。因此,我无法通过数组跟踪整个JSON

{
"data": {
    "4325474491990470056": {
        "hotel_geo_node": {
            "name": "The Capitol", 

                "property_type": [
                    "Hotel"
                ], 
                "property_budget_category": [
                    "Luxury"
                ], 

            }, 

        "hotel_data_node": {
            "rating": 4, 
            "stats": {
                "view_count": 713, 

                "prc": {
                    "go_101": {
                        "p": 4950.0, 
                        "dt": "2014-11-13", 
                        "dp": 4950.0
                    }, 
                    "go_201": {
                        "p": 5650.0, 
                        "dt": "2014-11-13", 
                        "dp": 5650.0
                    }
                }, 
                "last_vwd": {
                    "time": 1418233717
                }, 
                "book_count": 1
            }, 
            "name": "The Capitol", 
            "vid": [
                {
                    "u": "video", 
                    "l": "TABObQ27j4w"
                }
            ], 

                "vendor_priority": 318, 
                "scores": {
                    "vendor": 50, 
                    "views": 699, 
                    "trip_advisor": 324.0, 
                    "goibibo_review": 0, 
                    "frills": 2, 
                    "bookings": 1, 
                    "sub_vendor": 0, 
                    "static_data": 76
                }, 
                "data_src": "ingoibibo", 
                "location_slug": "city-center", 

            }, 
            "utime": {
                "$date": 1418255022000
            }, 

            "st": "LIV", 

            "desc": {
                "default": ""
            }, 
            "_id": "4325474491990470056", 
            "loc": {
                "city": "Bangalore", 
                "cnt_code": "IN", 
                "pin": "560001", 
                "city_cids": {
                    "trm": "BLR", 
                    "voy": "6771549831164675055"
                }, 
                "country": "INDIA", 
                "long": 77.5943716303, 
                "state": "Karnataka", 
                "location": "City Center - Mg Road / Near", 
                "lat": 12.9821798116, 
                "nhood": [
                    {
                        "_id": "1495661479872548865", 
                        "t": 122, 
                        "n": "City Center - Mg Road / Near"
                    }, 
                    {
                        "_id": "662155759444644883", 
                        "t": 20, 
                        "n": "Bangalore Palace"
                    }, 
                    {
                        "_id": "1527904823625587038", 
                        "t": 20, 
                        "n": "Bangalore Cantt Station"
                    }, 
                    {
                        "_id": "414302334487557591", 
                        "t": 20, 
                        "n": "Chinnaswamy Cricket Stadium"
                    }
                ]
            }, 

        }
    },
首先尝试console.log(数据)查看您正在接收的结构

$.ajax({
    url:url,
    dataType:'jsonp',
    crossDomain:true,
    success:function(data) {           
        todaydate= data.data[0];         
        alert(todaydate);          
    }
});
然后按照结构得到每个值

例如:

$.ajax({'url':url,dataType:'jsonp',crossDomain:true,success:function(response){      
     console.log(response.data); 
   }
});

这不是
数组
,而是
对象

 var hotelGeoNode = response.data['4325474491990470056'].hotel_geo_node;
这意味着您无法执行数据。数据[0]。相反,您可以执行以下操作:

$.ajax({
    url: url,
    dataType:'jsonp',
    crossDomain: true,
    success: function(data) {           
        var todaydate = data.data['4325474491990470056'];         
        alert(todaydate);          
    }
});
编辑:

以下是获取酒店名称的方法:

$.ajax({
    url: url,
    dataType: 'jsonp',
    crossDomain: true,
    success: function(data) {
        var firstElement;

        for (var key in data.data) {
            firstElement = data.data[key];
            break;
        }

        alert(firstElement);
        console.log(firstElement);
    }
});
以下是在平面阵列中检索所有酒店的方法:

$.ajax({
    url: url,
    dataType: 'jsonp',
    crossDomain: true,
    success: function(data) {
        var names = [];

        for (var key in data.data) {
            for (var hotelId in data.data[key]) {
                var hotel = data.data[key][hotelId];

                names.push(hotel.name);
            }
        }

        alert(names.join(', '));
        console.log(names);
    }
});
$.ajax({
url:url,
数据类型:“jsonp”,
跨域:是的,
成功:功能(数据){
var酒店=[];
for(数据中的var键。数据){
for(data.data[key]中的var hotelId){
hotels.push(data.data[key][hotelId]);
}
}
警觉(酒店);
控制台日志(酒店);
//然后,您可以这样访问您的酒店:
对于(变量i=0;i
假设您有一个数组(arr)要发送到javascript。必须用于对数组进行编码的代码是

$.ajax({
    url: url,
    dataType: 'jsonp',
    crossDomain: true,
    success: function(data) {
        var hotels = [];

        for (var key in data.data) {
            for (var hotelId in data.data[key]) {
                hotels.push(data.data[key][hotelId]);
            }
        }

        alert(hotels);
        console.log(hotels);

        // You can then access your hotels like that:
        for (var i = 0; i < hotels.length; i++) {
            var hotel = hotels[i];

            console.log(hotel.name);
        }
    }
});

您可以在此处找到完整的代码

检查您的url是否在浏览器的“网络”或“控制台”选项卡中返回答案,请使用F12,因为未定义字段utime!我不知道你想要哪个领域。更改它或告诉我您想要哪一个更新我的代码!如果我想要名字,我该怎么办。我知道它是否是json数组。关于[i]的数据;我知道了,谢谢!!!现在我非常希望在对象数组中没有完整的名称。请检查链接,我希望每个对象都可以访问
$arr[divResp]="<div>foo</div>";
$arr[js]="your JS code";
$arr[ddt]="your data";

json_encode(array($arr))
var divAnswerJs="";
 var jsDinamically="";
 var dataAny="";
    request.done(function(dataset){
      for (var index in dataset){ //fetch your json data
         divAnswerJs=dataset[index].divResp;
         jsDinamically=dataset[index].js;
         dataAny=dataset[index].ddt;
      }

    //You can create your element
    $('#AnyId').html(divAnswerJs);
    //You can load javascript dinamically
    $('body').append(jsDinamically);
    //Or use your data
    $('#OtherAnyId').html(dataAny);

        }