Сообщения

Сообщения за сентября 26, 2012

Не работает json_encode или Почему json_encode возвращает NULL (php)

Здравствуйте. Недавно столкнулся с проблемой парсинга JSON методом json_encode . JSON приходит правильный. неоднократно проверял, в чем проблема понять не могу. Оказывается все очень просто (ну или почти просто). Как я понял, JSON должен иметь кодировку UTF-8 . Такая ошибка возникает, если Вы отправляете JSON в другой кодировке, например в windows-1251 (cp1251). 1. При получении конвертировать данные в utf-8 при помощи iconv. $json_obj = json_decode (iconv("windows-1251","utf-8", $_POST [' json_data '])); Кстати, чтобы тип у $json_obj был не oject , а array , нужно указать в json_decode второй параметр в значение true . $json_arr  = json_decode (iconv("windows-1251","utf-8", $_POST [' json_data ']), true ); 2. Перед отправкой данных экранировать данные методом urlencode(); Хотя в принципе нормальный упаковщик JSON должен прогонять все данные через urlencode. 3. Если Вы передаете данные целиком из БД. То пер...