Web アプリケーションの人気に伴い、AJAX テクノロジの使用はますます普及しています。 JSON (JavaScript Object Notation) は、フロントエンドとバックエンドのデータ対話を処理する際によく使用されるデータ形式です。 ThinkPHP5 フレームワークでは、JSON の操作は非常に簡単ですが、この記事では、ThinkPHP5 での JSON メソッドの使用方法を紹介します。
- Json 操作の概要
PHP で配列を JSON 形式のデータに変換するには、 json_encode 関數(shù)を使用するだけです。
$data?=?array('a'?=>?1,?'b'?=>?2,?'c'?=>?3); echo?json_encode($data);?//?{"a":1,"b":2,"c":3}
json_decode 関數(shù)を使用して、JSON 形式のデータを配列に変換できます:
$json_data?=?'{"a":1,"b":2,"c":3}'; $data?=?json_decode($json_data,?true); print_r($data);?//?Array?(?[a]?=>?1?[b]?=>?2?[c]?=>?3?)
ThinkPHP5 フレームワークでは、JSON 操作がより簡単になり、フレームワークは簡単に処理できる Json クラスを提供します。 JSON データ。このクラスは think\response\Json.php にあります。
- Json クラスの使用法
Json クラスは、Response クラスから継承します。Response クラスは、応答クラスの抽象親クラスです。その主な機能は、クライアントへの返答。 Json クラスの主な機能は、データを JSON 形式でクライアントに返すことです。
Json インスタンスは次の方法で作成できます:
use?think\response\Json; $data?=?array('a'?=>?1,?'b'?=>?2,?'c'?=>?3); $json?=?new?Json($data);
または次の方法で作成できます:
$json?=?json($data);
- Json メソッドの紹介
Json クラスには JSON データを処理するためのメソッドが複數(shù)用意されていますので、以下でそれぞれ紹介していきます。
(1)dataメソッド
dataメソッドは、返卻するデータを設定するために使用します。
$json?=?new?Json(); $json->data($data);
Or:
$json->data($data)->code(200)->header(['Cache-control'?=>?'no-cache,must-revalidate'])->send();
(2) content メソッド
content メソッドは、返されるデータのタイプ (Content-Type タイプなど) を設定するために使用されます。アプリケーション/json。
$json?=?new?Json(); $json->content('application/json');
(3) jsonp メソッド
jsonp メソッドは、JSONP データの生成に使用されます。2 つのパラメータを受け入れます。最初のパラメータはコールバック関數(shù)の名前で、2 番目のパラメータは値です返されるデータ。
$json?=?new?Json(); $json->jsonp('callback',?$data);
(4) code メソッド
code メソッドは、応答のステータス コードを設定するために使用されます。たとえば、200 は応答が成功したことを意味し、404 は要求されたリソースが存在しないことを意味します。 、など。
$json?=?new?Json(); $json->code(200);
(5) headerメソッド
headerメソッドは、レスポンスヘッダ情報を設定するメソッドです。
$json?=?new?Json(); $json->header(['Cache-control'?=>?'no-cache,must-revalidate']);
(6) options メソッド
options メソッドは、応答オプションを設定するために使用されます。
$json?=?new?Json(); $json->options(['json_encode_param'?=>?JSON_UNESCAPED_UNICODE]);
(7) send メソッド
send メソッドは、応答データを送信するために使用されます。
$json?=?new?Json($data); $json->send();
- Json の例
例を通して Json クラスの使用方法を學びましょう。製品のリストを返すために JSON API が必要な場合、各製品には ID と名前という 2 つの屬性があります。
最初はフロントエンド コードです:
$.ajax({ ????url:?'/goods/list', ????dataType:?'jsonp', ????jsonp:?'callback', ????success:?function(data)?{ ????????if?(data.code?==?200)?{ ????????????$.each(data.data,?function(index,?item)?{ ????????????????$('#goods-list').append('<li>'?+?item.id?+?':?'?+?item.name?+?'</li>'); ????????????}); ????????}?else?{ ????????????alert('加載商品列表失敗:'?+?data.msg); ????????} ????}, ????error:?function(jqXHR,?textStatus,?errorThrown)?{ ????????alert('加載商品列表失敗:'?+?textStatus); ????} });
次に、コントローラーにリスト関數(shù)を追加しますグッズ:
namespace?app\index\controller; use?think\response\Json; class?Goods { ????public?function?list() ????{ ????????//?模擬商品數(shù)據(jù) ????????$goods_list?=?array( ????????????array('id'?=>?1,?'name'?=>?'商品1'), ????????????array('id'?=>?2,?'name'?=>?'商品2'), ????????????array('id'?=>?3,?'name'?=>?'商品3'), ????????); ????????//?返回JSON數(shù)據(jù) ????????$json?=?json($goods_list); ????????$jsonp_callback?=?input('get.callback'); ????????if?(!empty($jsonp_callback))?{ ????????????$json->jsonp($jsonp_callback); ????????} ????????return?$json; ????} }
最後に、ルーティングにルールを追加します:
Route::get('/goods/list',?'index/Goods/list');
プログラムを実行し、パス /goods/list にアクセスして、返された JSON データを確認します。
この記事では、ThinkPHP5 フレームワークの Json クラスの基本的な使用法をいくつか紹介するだけであり、読者が自分で調(diào)べる必要があるより高度な使用法もあります。この記事が、ThinkPHP5 フレームワークの JSON 操作を理解するための參考になれば幸いです。
以上がthinkphp5 で JSON メソッドを使用する方法について話しましょうの詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)