Heim  >  Artikel  >  PHP-Framework  >  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
PHPzOriginal
2023-04-07 09:24:592127Durchsuche

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}

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.

  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);

oder auf folgende Weise erstellen:

$json = json($data);
  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);

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();
  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);
    }
});

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!

Stellungnahme:
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