如何将字符串数组转换为json jquery?

时间:2015-12-14 02:50:12

标签: jquery json django

我使用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

1 个答案:

答案 0 :(得分:1)

要引用数组中的特定索引,语法为array[index]。要引用对象的属性,语法为object.propertyobject["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