CodeIgniter: проблемы с массивом json_decode - PullRequest
3 голосов
/ 13 мая 2010

На стороне клиента я отправляю ajax-запрос с jQuery по следующему вопросу:

$.post(script.php, { "var1":"something", "var2":"[1,2,3]" }, function(data) { }, "json");

На стороне сервера, в контроллере CodeIgniter, я получаю значения примерно так:

$var1 = trim($this->input->post('var1'));
$var2 = trim($this->input->post('var2'));

Мой вопрос заключается в том, как преобразовать строку в $var2 в массив PHP. Я попытался использовать json_decode($var2, true), но он возвращает null, поскольку "[1,2,3]" само по себе не является допустимой строкой JSON.

Кроме того, если вы считаете, что есть лучший способ для меня прочитать значения на стороне сервера, пожалуйста, покажите мне, как это сделать.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 14 мая 2010

Как сказал @Galen в своем комментарии к моему вопросу, это работает. Причина, по которой я получил null от json_decode, заключается в том, что он попробовал его с использованием значения, не являющегося массивом, что требует двойного ".

1 голос
/ 14 мая 2010

Вы можете сделать это:

$var2 = trim($this->input->post('var2'), "[]");

$array = explode(",", $var2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...