Mit der Popularität von Webanwendungen wird der Einsatz der AJAX-Technologie immer weiter verbreitet. JSON (JavaScript Object Notation) ist ein beliebtes Datenformat für die Interaktion zwischen Front-End- und Back-End-Daten. Im ThinkPHP5-Framework sind JSON-Vorgänge sehr einfach. In diesem Artikel wird die Verwendung der JSON-Methode in ThinkPHP5 vorgestellt.
Um in PHP ein Array in Daten im JSON-Format zu konvertieren, müssen Sie nur die Funktion json_encode verwenden.
$data = array('a' => 1, 'b' => 2, 'c' => 3); echo json_encode($data); // {"a":1,"b":2,"c":3}
Sie können Daten im JSON-Format über die Funktion json_decode konvertieren:
$json_data = '{"a":1,"b":2,"c":3}'; $data = json_decode($json_data, true); print_r($data); // Array ( [a] => 1 [b] => 2 [c] => 3 )
Im ThinkPHP5-Framework sind JSON-Vorgänge einfacher. Das Framework stellt eine JSON-Klasse bereit, die JSON-Daten problemlos verarbeiten kann. php.
Die Json-Klasse erbt von der Response-Klasse. Die Response-Klasse ist eine abstrakte übergeordnete Klasse der Response-Klasse. Ihre Hauptfunktion besteht darin, die Antwort an den Client zurückzugeben. Die Hauptfunktion der Json-Klasse besteht darin, Daten im JSON-Format an den Client zurückzugeben.
Wir können eine Json-Instanz auf folgende Weise erstellen:
use think\response\Json; $data = array('a' => 1, 'b' => 2, 'c' => 3); $json = new Json($data);
oder auf folgende Weise erstellen:
$json = json($data);
Die Json-Klasse bietet mehrere Methoden zur Verarbeitung von JSON-Daten .
(1) Datenmethode
Datenmethode wird verwendet, um die zurückzugebenden Daten festzulegen.
$json = new Json(); $json->data($data);
Oder:
$json->data($data)->code(200)->header(['Cache-control' => 'no-cache,must-revalidate'])->send();
(2) Inhaltsmethode
Die Inhaltsmethode wird verwendet, um den Typ der zurückzugebenden Daten festzulegen, z. B. den Content-Type-Typ von application/json.
$json = new Json(); $json->content('application/json');
(3) jsonp-Methode
jsonp-Methode wird zum Generieren von JSONP-Daten verwendet. Der erste Parameter ist der Name der Rückruffunktion und der zweite Parameter sind die zurückzugebenden Daten.
$json = new Json(); $json->jsonp('callback', $data);
(4) Code-Methode
Code-Methode wird verwendet, um den Statuscode der Antwort festzulegen, z. B. 200 für eine erfolgreiche Antwort, 404 für das Nichtvorhandensein der angeforderten Ressource usw.
$json = new Json(); $json->code(200);
(5) Header-Methode
Die Header-Methode wird zum Festlegen von Antwort-Header-Informationen verwendet.
$json = new Json(); $json->header(['Cache-control' => 'no-cache,must-revalidate']);
(6) Optionsmethode
Optionsmethode wird zum Festlegen von Antwortoptionen verwendet.
$json = new Json(); $json->options(['json_encode_param' => JSON_UNESCAPED_UNICODE]);
(7) Sendemethode
Sendemethode wird zum Senden von Antwortdaten verwendet.
$json = new Json($data); $json->send();
Lassen Sie uns anhand eines Beispiels lernen, wie man die Json-Klasse verwendet. Angenommen, wir benötigen eine JSON-API, um eine Liste von Produkten zurückzugeben. Jedes Produkt hat zwei Attribute: ID und Name.
Zuerst ist der Front-End-Code:
$.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); } });
Dann fügen Sie eine Listenfunktion im Controller hinzu. Waren:
namespace app\index\controller; use think\response\Json; class Goods { public function list() { // 模拟商品数据 $goods_list = array( array('id' => 1, 'name' => '商品1'), array('id' => 2, 'name' => '商品2'), array('id' => 3, 'name' => '商品3'), ); // 返回JSON数据 $json = json($goods_list); $jsonp_callback = input('get.callback'); if (!empty($jsonp_callback)) { $json->jsonp($jsonp_callback); } return $json; } }
Zum Schluss fügen Sie eine Regel im Routing hinzu:
Route::get('/goods/list', 'index/Goods/list');
Führen Sie das Programm aus und greifen Sie auf den Pfad /goods/list zu zu Sehen Sie sich die zurückgegebenen JSON-Daten an.
In diesem Artikel werden nur einige grundlegende Verwendungsmethoden der Json-Klasse im ThinkPHP5-Framework vorgestellt. Es gibt fortgeschrittenere Verwendungsmethoden, die der Leser selbst erkunden muss. Ich hoffe, dass dieser Artikel jedem eine Referenz bieten kann, um die JSON-Operation des ThinkPHP5-Frameworks zu verstehen.
Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, wie Sie die JSON-Methode in thinkphp5 verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!