2015-03-08 22 views
11

Sto creando restful apis e ho avuto una funzione per inviare dati di risposta in yii1 come questoCome convertire un array JSON in yii2

public function sendResponse($data) 
{ 
    header('Content-Type: application/json; charset=utf-8'); 
    echo CJSON::encode($data); 
    exit; 
} 

CJSON non è disponibile in Yii2 così come faccio lo faccio in Yii2

risposta

24

Non è necessario impostare manualmente l'intestazione in questo modo.

Nell'azione/metodo specifico è possibile impostare in questo modo:

use Yii; 
use yii\web\Response; 

... 

public function actionIndex() 
{ 
    Yii::$app->response->format = Response::FORMAT_JSON; 
} 

Poi, dopo che solo restituiscono un semplice array del genere:

return ['param' => $value]; 

Potete trovare questa proprietà nei documenti ufficiali here.

Per più di un'azione utilizzando uno speciale filtro ContentNegotiator è l'approccio più flessibile:

/** 
* @inheritdoc 
*/ 
public function behaviors() 
{ 
    return [ 
     [ 
      'class' => ContentNegotiator::className(), 
      'only' => ['index', 'view'] 
      'formats' => [ 
       'application/json' => Response::FORMAT_JSON, 
      ], 
     ], 
    ]; 
} 

Non ci sono ulteriori impostazioni, è possibile controllare in official docs.

Per il resto, la base yii\rest\Controller ha già in posa per json e xml:

'contentNegotiator' => [ 
    'class' => ContentNegotiator::className(), 
    'formats' => [ 
     'application/json' => Response::FORMAT_JSON, 
     'application/xml' => Response::FORMAT_XML, 
    ], 
], 
+3

Grazie arogachev per grandi informazioni. anche se la mia domanda era solo su come codificare json in yii2, hai aggiunto ottime informazioni sulle intestazioni delle impostazioni Grazie mille –

0

:: find() -> asArray() -> tutti(); aiuto desiderato.

1

Si potrebbe utilizzare classe JSON in yii2 da

yii\helpers\Json; 

Esso contiene metodi come:

Json::encode(); 
Json::decode(); 

Questi metodi converte direttamente oggetti ActiveRecord yii2 nella matrice json.

+0

Json :: decode(); oggetti JSON non decodificati – Developer

Problemi correlati