Массив объектов, не анализируемых как массив javascript собственных объектов? - PullRequest
0 голосов
/ 03 июля 2011

Я получаю следующие данные от сервера

"[{\"role_id\":\"1\",\"name\":\"administrator\",\"created_by_user_id\":\"2\",\"time_created_on\":null,\"is_user_based\":\"0\"},{\"role_id\":\"2\",\"name\":\"manager\",\"created_by_user_id\":null,\"time_created_on\":null,\"is_user_based\":\"0\"}]"

, который представляет собой просто массив из двух объектов.Даже после установки 'dataType' в json я не получаю собственный массив javascript внутри моей функции обратного вызова, но если я использую

$.ajaxSetup({
        url:'/public/admin/role/list',
        dataType:'json'

    });


$.ajax({
    success:function(data) {
    alert(data[0].name); // alert box pop up as 'undefined ' 
    var data = $.parseJSON(data); 
    alert(data[0].name) ; //works 
    }
    });

Ответы [ 2 ]

2 голосов
/ 03 июля 2011

Не избегайте ". Они необходимы для анализа JSON.

[{"role_id":"1","name":"administrator","created_by_user_id":"2","time_created_on":null,"is_user_based":"0"},{"role_id":"2","name":"manager","created_by_user_id":null,"time_created_on":null,"is_user_based":"0"}]
0 голосов
/ 03 июля 2011

У вас есть запятая при установке dataType в вашем методе ajaxSetup:

dataType:'json',
               ^

Также я надеюсь, что эти \ в JSON, который вы здесь показали, не являются частью реального ответа от сервера.Ответ должен выглядеть так:

[{"role_id":"1","name":"administrator","created_by_user_id":"2","time_created_on":null,"is_user_based":"0"},{"role_id":"2","name":"manager","created_by_user_id":null,"time_created_on":null,"is_user_based":"0"}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...