PHPでJSONをエンコードする(json_encode)
PHP json_encode() 関数は、PHP で JSON をエンコードするために使用されます。この関数は、成功した場合は JSON で表される値を返し、失敗した場合は FALSE を返します。
文法:
string json_encode ( $value [, $options = 0 ] ) パラメータ:
値: エンコードされる値。この関数は UTF-8 でエンコードされたデータにのみ適用されます。
オプション: このオプションの値は、JSON_HEX_TAG JSON_HEX_QUOT、JSON_HEX_AMP、JSON_HEX_APOS、JSON_NUMERIC_CHECK、JSON_PRETTY_PRINT、JSON_UNESCAPED_SLASHES、JSON_FORCE_OBJECT で構成されるビットマスクです
例
次の例は、PHP を使用して配列を JSON に変換する方法を示しています。
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?> 実行中に、次の結果が生成されます: {"a":1,"b":2,"c":3,"d":4,"e":5}
|
コードは次のとおりです | |
{ json_decode 関数を使用して配列を返し、取得します: 配列 |
PHP言語で必要な値を取得するには、次のメソッドを使用できます。
/*------------------------------------------------- $data = ' { "翻訳":["Hello world"], "クエリ":"Hello world", "エラーコード":0, 「ウェブ」:[ { "値":["hello world"], "key":"Hello world" }、 { "値":["Hello World"], "key":"Hello world" } 】 } '; --------------------------------------*/ $data = << "翻訳":["Hello world"], "クエリ":"Hello world", "エラーコード":0, 「ウェブ」:[ { "値":["hello world"], "key":"Hello world" }、 { "値":["Hello World"], "key":"Hello world" } 】 } ストラ; $jsondata=json_decode($data,true); header("Content-Type: text/html; charset=UTF-8"); //print_r($jsondata); echo " ".$jsondata['translation'][0]; //こんにちは echo " ".$jsondata['query'] //こんにちは echo " ".$jsondata['web'][0]['value'][0]; //こんにちは echo " ".$jsondata['web'][1]['key']; //こんにちは ?> |
コードは次のとおりです | |
include './include/conn.php' //データベースリンクファイル <スクリプト言語=javascript> スクリプト> 2 つのメソッドによって生成されるオブジェクト配列の構造の違いに注意してくださいecho ' 法一';//データベースから読み取ったデータに基づいて次の配列が生成されたと仮定します $jarr=array('total'=>239,'row'=>array( array('code'=>'001','name'=>'中国 www.111cn.net','addr'=>'アドレス 11','col4'=>'col4 データ'), array('code'=>'002','name'=>'名前 2','addr'=>'アドレス 12','col4'=>'col4 データ'), ) ); //方法 1: $jobj=new stdclass();//json_decode 後のデータはオブジェクト配列の形式で保存されるため、PHP に組み込まれた空のクラスである stdclass をインスタンス化します。 //したがって、生成するときは、オブジェクトにデータを保存する必要もあります foreach($jarr as $key=>$value){ $jobj->$key=$value; } print_r($jobj);//属性を渡した後、オブジェクトを印刷します echo '$jobj->row[0]['code'] を使用して配列要素を出力します:'.$jobj->row[0]['code'].' '; echo 'エンコードされたjson文字列:'.json_encode($jobj).' ';//エンコードされたjson文字列を出力します echo ' '; //方法 2: echo ' 方法 2';echo 'エンコードされた json 文字列:'; echo $str=json_encode($jarr);// 配列を json にエンコードします echo ' '; $arr=json_decode($str);// json を再度デコードします print_r($arr);//デコードされた配列を出力します。データはオブジェクト配列に保存されます echo '$arr->row[0]->code を使用して配列要素を出力します:'.$arr->row[0]->code; ?> ボディ> |