我使用Django,返回json对象的视图,有下一个代码:
def searchTourDBEsp_view(request):
print 'llamamos search ESP'
dataTourEsp = TourEsp.objects.raw('SELECT * FROM appMain_tour where idTour=1')
dataTourEspSer = serializers.serialize("json",dataTourEsp)
return HttpResponse(json.dumps(dataTourEspSer),content_type='application/json')
你可以看到我必须对数据库进行序列化咨询。
在我的模板中,我需要访问返回的数据。
$.ajax({
type:"POST",
url: '{% url "url_searchTourEsp"%}',
data: data1,
success: function(jsonAjaxResult){
console.log("Ajax ok");
console.log("nombre");
console.log(jsonAjaxResult);
console.log(jsonAjaxResult[0]);
},
error: function(data){
alert("Got an error, Pleas conctact the Administrator");
alert(data);
}
});
jsonAjaxResult对象具有我需要的所有信息,但它是一个字符串数组。 jsonAjaxResult的内容如下:
[{
"fields":
{
"Monday": true,
"restrictions": "No kids",
"name": "Yate Mar",
},
"model": "appMain.touresp",
"pk": 1
}]
并且访问数据的唯一方法是输入
console.log(jsonAjaxResult[0]);
结果为[
有人知道如何访问以下信息:
jsonAjaxResult['restrictions'];
但如果我输入此内容,则结果为undefined
答案 0 :(得分:1)
要引用数组中的特定索引,语法为array[index]
。要引用对象的属性,语法为object.property
或object["property"]
。由于您的数据结构涉及数组中的嵌套对象,因此只需使用适当的语法来引用每个层的值。
在这种情况下,您的顶级数据类型是一个数组。该数组包含一个名为fields
的属性的对象。反过来,该属性的值是另一个具有名为restrictions
的属性的对象。你必须从上到下引用这些中的每一个。
var data = [
{
"fields": {
"Monday": true,
"restrictions": "No kids",
"name": "Yate Mar",
},
"model": "appMain.touresp",
"pk": 1
}
];
要获取restrictions
属性的值,请执行以下操作:data[0].fields.restrictions
。
如果您的数组有多个值,并且您希望为每个数组获取restrictions
,请迭代数组并将0
替换为数组索引变量。那就是:
for (var i=0; i < data.length; i++) {
console.log(data[i].fields.restrictions);
}
<小时/> 编辑:在执行此操作之前,您必须将JSON字符串解码为数组。请使用
JSON.parse
:
JSON.parse(jsonAjaxResult)[0].fields.restrictions