2016-03-14 3 views
0

Итак, это мой php код:Возникли проблемы пытаются кодировать JSON из PHP

$lista = Producoes::getPublicList(); 
if(count($lista) > 0){ 

    $jsonObj = array(); 

    foreach ($lista as $post){ 
     $jsonPost = array(); 
     $jsonPost["id"]=$post->id_post; 
     $jsonPost["url_post"]=$post->url_post; 
     $jsonPost["url_path"]=$post->url_path; 
     $jsonPost["url_foto"]=$post->url_foto; 
     $jsonPost["post_title"]=$post->post_title; 
     array_push($jsonObj, $jsonPost); 
    } 

    error_log(print_r($jsonObj,TRUE)); 
} 

Flight::json($jsonObj); 

в журнале ошибок, я могу видеть, что я получаю правильную структуру вывода:

Array(
[0] => Array 
    (
     [id] => 1 
     [url_post] => http://www.blogbellafiore.com/2016/03/especial-de-pascoa-bella-fiore.html 
     [url_path] => especial-de-pascoa-bella-fiore.html 
     [url_foto] => https://4.bp.blogspot.com/-bd3jBX0GACc/Vt2qx4wfwuI/AAAAAAAAi-U/PvF_AtZhPOg/s640/GM_0003.jpg 
     [post_title] => Especial de Páscoa Bella Fiore 
    ) 

[1] => Array 
    (
     [id] => 3 
     [url_post] => http://www.blogbellafiore.com/2013/03/editorial-de-pascoa.html 
     [url_path] => editorial-de-pascoa.html 
     [url_foto] => http://2.bp.blogspot.com/-ay94xBCYqtY/UUtHNsE2p1I/AAAAAAAAG1s/qjG6lS22IMg/s640/Pa%CC%81scoa-5.jpg 
     [post_title] => Editorial de Páscoa 
    ) 

[2] => Array 
    (
     [id] => 2 
     [url_post] => http://www.blogbellafiore.com/2015/12/editorial-de-fotos-barraquinha-da-sophie.html 
     [url_path] => editorial-de-fotos-barraquinha-da-sophie.html 
     [url_foto] => https://2.bp.blogspot.com/-LF9rLCqpyl0/VnhNTfiLy2I/AAAAAAAAhlM/O-B1IwN_FJY/s640/Editorial_Barraquinha_da_Sophie__10.JPG 
     [post_title] => Editorial - Barraquinha da Sophie 
    ) 
) 

но выход json ничего не показывает. просто пусто.

Я использую схему FlightPHP как маршрутизатор, поэтому метод Flight: json ($ var) кодирует и возвращает ответ json. Уже использовал его в других местах и ​​отлично работает.

+1

В встроенной библиотеке JSON у вас есть json_last_error(). Предлагает ли ваша структура аналогичный инструмент диагностики? –

+3

Стандартное предположение: ** ваши данные не кодируются в кодировке UTF-8 **, как требуется 'json_encode'. – deceze

+0

вы правы @deceze, post_title необходимо закодировать utf8! Благодаря!! – kalangaum

ответ

1

@deceze решить ее, я просто необходим utf8 кодирование после названия, эта модификация работала:

$jsonPost["post_title"]=utf8_encode($post->post_title); 
+2

Ну, 'utf8_encode()' преобразует ** из ISO-8859-1 **. Это так? –

Смежные вопросы