Доступ к данным json из php

У меня проблема с доступом к данным JSON. Я новичок в JSON и jquery, поэтому, возможно, это простое решение, и я был бы рад узнать.

Мой jQuery:

$.post( "currentPage.php", { 'currentPage': 1 }, function(data){ $("body").append(data); } ); 

currentPage.php:

 $returnArray['left'] = 'test_left'; $returnArray['right'] = 'test_right'; $returnArray['numLeft'][] = 1; $returnArray['numRight'][] = 2; $returnArray['numRight'][] = 3; print json_encode($returnArray); 

Я попытался получить доступ к следующим данным:

 data.left data['left'] 

но он возвращает пустое, как лучший способ доступа к данным в HTML-файле?

Я мог ошибаться, но я не думаю, что метод post предполагает возврат данных типа json. Вы можете установить это, изменив функцию ajax на:

  $.post( "currentPage.php", { 'currentPage': 1 }, function(data){ $("body").append(data); }, "json" ); 

Укажите тип данных, который вы ожидаете получить как параметр метода .post() (в вашем случае json ):

 $.post("currentPage.php",{'currentPage': 1}, function(data){ $("body").append(data); }, 'json' // <-- add the expected datatype ); 

Я считаю, что значение по умолчанию заключается в обработке результата как HTML. Прочтите документацию .

jQuery.post (url, [data], [success (data, textStatus, XMLHttpRequest)], [dataType])

строка urlA, содержащая URL-адрес, по которому отправляется запрос.

dataA map или строка, которая отправляется на сервер с запросом.

success (data, textStatus, XMLHttpRequest) Функция обратного вызова, которая выполняется, если запрос завершается успешно.

dataType Тип данных, ожидаемых от сервера.

В JQuery вам нужно установить тип данных возврата ( dataType ) в json чтобы функция знала, какой тип данных ожидать и обрабатывать. Из руководства:

«json»: оценивает ответ как JSON и возвращает объект JavaScript. В jQuery 1.4 данные JSON обрабатываются строгим образом; любой отклоненный JSON отклоняется и возникает ошибка синтаксического анализа. (См. Json.org для получения дополнительной информации о правильном форматировании JSON.)

Вы можете сделать это с помощью полного вызова $ .ajax () , или вы можете использовать $ .getJSON () . Не существует HTTP POST-ярлыка для возврата JSON (то есть $ .postJSON не существует), но вы можете dataType параметр dataType в $.ajax() или просто добавить параметр в $.post() . Когда у вас есть объект JSON , используйте json.keyName для доступа к данным.

 $.ajax({ url: "currentPage.php", data: { 'currentPage': 1 }, dataType: "json", type: "post", success: function(data) { $("body").append(data); } });