Heim > PHP-Framework > Denken Sie an PHP > Lassen Sie uns darüber sprechen, wie Sie die JSON-Methode in thinkphp5 verwenden

Lassen Sie uns darüber sprechen, wie Sie die JSON-Methode in thinkphp5 verwenden

PHPz
Freigeben: 2023-04-07 14:08:47
Original
2197 Leute haben es durchsucht

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.

  1. Einführung in Json-Operationen

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}
Nach dem Login kopieren

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 )
Nach dem Login kopieren

Im ThinkPHP5-Framework sind JSON-Vorgänge einfacher. Das Framework stellt eine JSON-Klasse bereit, die JSON-Daten problemlos verarbeiten kann. php.

  1. Json-Klassenverwendung

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);
Nach dem Login kopieren

oder auf folgende Weise erstellen:

$json = json($data);
Nach dem Login kopieren
  1. Einführung in die Json-Methode

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);
Nach dem Login kopieren

Oder:

$json->data($data)->code(200)->header(['Cache-control' => 'no-cache,must-revalidate'])->send();
Nach dem Login kopieren

(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');
Nach dem Login kopieren

(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);
Nach dem Login kopieren

(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);
Nach dem Login kopieren

(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']);
Nach dem Login kopieren

(6) Optionsmethode

Optionsmethode wird zum Festlegen von Antwortoptionen verwendet.

$json = new Json();
$json->options(['json_encode_param' => JSON_UNESCAPED_UNICODE]);
Nach dem Login kopieren

(7) Sendemethode

Sendemethode wird zum Senden von Antwortdaten verwendet.

$json = new Json($data);
$json->send();
Nach dem Login kopieren
  1. Json-Beispiel

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);
    }
});
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren

Zum Schluss fügen Sie eine Regel im Routing hinzu:

Route::get('/goods/list', 'index/Goods/list');
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage