Ошибка синтаксического анализа $ .ajax (jQuery) - PullRequest
0 голосов
/ 29 июня 2011

Итак, у меня есть массив:

[{'key1':'a', 'key2':'b', 'ProblemKey': {'keyP1': 'c', 'KeyP2':'d'}}, {'key1':'e', 'key2': 'f', 'ProblemKey': ....}}]

Когда я выполняю стандартный цикл $ .each по полученным данным (выше) из моего ответа GET, все ключи правильно соответствуют их значению для каждого объекта в массиве, кроме «problemKey» (поскольку их значения ассоциативные массивы, а не строки?). Те всегда возвращаются как неопределенные. Есть ли способ получить метод $ .ajax для правильного разбора этих частей? Или я должен вернуть данные в виде текстового документа и получить какой-нибудь сторонний плагин, который обладает лучшими возможностями анализа, чем тот, который уже поставляется с jQuery?

Ответы [ 2 ]

1 голос
/ 29 июня 2011
$.ajax({
            url:'Your post url',
            data : ({
                'elem':elemtopost,

            }),
            method : 'POST',
            dataType: 'json',                 
            success: function(msg){ 

                    for(j=0;j<msg.length;j++){
                            alert(msg[j]['key1']  //accessing the json string
                    }
});
1 голос
/ 29 июня 2011

При вызове $.ajax установите dataType на "json":

$.ajax({
   // other stuff
   dataType: "json"
});

Затем в функции success вы можете получить доступ к возвращаемому значению с помощью оператора точки:

var myVal = returnArray[0].ProblemKey.keyP1;
...