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