json - как кодировать подскажите

Подскажите как массив перекодировать в формат json? допустим получил я запрос с БД. Чем можно перегнать его?

Нужно что-то наследовать, или в стандартном контролере есть метод? В zend там немного по другому…

Наверно такие тем было много, но на вскидку не нашел. заранее спасибо.

http://www.yiiframework.com/doc/api/CJSON#encode-detail

Кириллицу функция также не умеет нормально кодировать json как и встроенная json_encode.

Для этого стоит использовать либо UTF-8 кодировку в проекте либо использовать iconv

даже с кодировкой UTF-8 текст(кириллица) отправляется в браузер в виде [{“name”:"\u041f\u043b"}] всего 2 символа, а отправились все 12 :). Приходится писать свою функцию для формирования json, чтоб в браузер отправлялся объект в виде [{“name”:“пр”}]

Все правильно уходит. У вас вьюхи в юникоде?

Весь проект в utf8 и если отправлять в браузер


//все нормально приходит в браузер

echo {"name":"проверка"} //{"name":"проверка"}


//статус 200, но ругается на одинарные кавычки в объекте

echo CJavaScript::encode(array('name'=>'проверка')) //{'name':'проверка'}


//в методе используется функция json_encode если включена в php. Отправили 8 символов получили 48

echo CJSON::encode(array('name'=>'проверка'))  //{"name":"\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430"}

Или придется все равно писать свою функцию для формирования json?

legor - а ты попробуй вывести данные. Должно норм выводиться. У меня так же передает, но когда выводишь то текст нормальный