почему NULL в JSON после JSON.stringify?

0

php 5.4 fastcgi jquery 1.10

Код JQuery:

$.ajax({
          type: "POST",
          url: "",
          dataType: "json",
          data: { json: JSON.stringify({test: 'teste'}) }
        }).done(function(msg) {
              var msg = $.parseJSON(msg);
              alert(msg);
        });

PHP-код:

$json = $_POST['json'];
$info = json_decode($json, true);
var_dump($info);

Результат:

array(1) {
  ["test"]=>
  string(5) "teste"
}
null

Я не знаю, почему этот нулевой оператор и как его удалить. Потому что, если я пытаюсь использовать:

$i = info['test'];
echo $i;

я получу: testenull

Теги:

2 ответа

2
Лучший ответ

Похоже, что ваши данные JSON - это проблема.

json_decode() в PHP использует кодированную строку JSON в качестве входных данных и преобразует ее в переменную PHP.

Он работает так

<?php
$json = '{"test": 12345}';
$obj = json_decode($json);
print $obj->{'test'}; // 12345
?>
0

Поскольку вы устанавливаете dataType, это JSON, поэтому в PHP ответ также должен быть в формате JSON.

Пример: echo '{"i":'. $ I. '}';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню