Rumah  >  Artikel  >  rangka kerja php  >  Mari kita bincangkan tentang cara menggunakan kaedah JSON dalam thinkphp5

Mari kita bincangkan tentang cara menggunakan kaedah JSON dalam thinkphp5

PHPz
PHPzasal
2023-04-07 09:24:592122semak imbas

Dengan populariti aplikasi web, penggunaan teknologi AJAX semakin meluas. JSON (JavaScript Object Notation) ialah format data yang popular apabila berurusan dengan interaksi data hadapan dan belakang. Dalam rangka kerja ThinkPHP5, operasi JSON adalah sangat mudah Artikel ini akan memperkenalkan cara menggunakan kaedah JSON dalam ThinkPHP5.

  1. Pengenalan kepada operasi Json

Dalam PHP, untuk menukar tatasusunan kepada data format JSON, anda hanya perlu menggunakan fungsi json_encode.

$data = array('a' => 1, 'b' => 2, 'c' => 3);
echo json_encode($data); // {"a":1,"b":2,"c":3}

Data format JSON boleh ditukar kepada tatasusunan melalui fungsi json_decode:

$json_data = '{"a":1,"b":2,"c":3}';
$data = json_decode($json_data, true);
print_r($data); // Array ( [a] => 1 [b] => 2 [c] => 3 )

Dalam rangka kerja ThinkPHP5, operasi JSON adalah lebih mudah, dan rangka kerja menyediakan kelas Json, yang mudah Untuk memproses data JSON dengan cekap, kelas ini terletak di thinkresponseJson.php.

  1. Kelas Json menggunakan

Kelas Json mewarisi daripada kelas Respons ialah kelas induk abstrak bagi kelas respons tindak balas kepada klien. Fungsi utama kelas Json adalah untuk mengembalikan data kepada klien dalam format JSON.

Kita boleh mencipta contoh Json dengan cara berikut:

use think\response\Json;

$data = array('a' => 1, 'b' => 2, 'c' => 3);
$json = new Json($data);

atau dengan cara berikut:

$json = json($data);
  1. Pengenalan kaedah Json

Kelas Json menyediakan berbilang kaedah untuk memproses data JSON masing-masing.

(1) kaedah data

Kaedah data digunakan untuk menetapkan data yang akan dikembalikan.

$json = new Json();
$json->data($data);

atau:

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

(2) kaedah kandungan

Kaedah kandungan digunakan untuk menetapkan jenis data yang akan dikembalikan, seperti Kandungan - jenis aplikasi/json Type.

$json = new Json();
$json->content('application/json');

(3) kaedah jsonp

Kaedah jsonp digunakan untuk menjana data JSONP Ia menerima dua parameter Parameter pertama ialah nama fungsi panggil balik, dan parameter kedua ialah nama fungsi panggil balik Data dikembalikan.

$json = new Json();
$json->jsonp('callback', $data);

(4) kaedah kod

Kaedah kod digunakan untuk menetapkan kod status respons Sebagai contoh, 200 bermakna respons berjaya, 404 bermakna sumber yang diminta melakukannya tidak wujud, dsb.

$json = new Json();
$json->code(200);

(5) kaedah pengepala

Kaedah pengepala digunakan untuk menetapkan maklumat pengepala respons.

$json = new Json();
$json->header(['Cache-control' => 'no-cache,must-revalidate']);

(6) kaedah pilihan

kaedah pilihan digunakan untuk menetapkan pilihan respons.

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

(7) kaedah hantar

Kaedah hantar digunakan untuk menghantar data respons.

$json = new Json($data);
$json->send();
  1. Contoh Json

Berikut ialah contoh untuk mempelajari cara menggunakan kelas Json. Katakan kita memerlukan API JSON untuk mengembalikan senarai produk Setiap produk mempunyai dua atribut: ID dan nama.

Mula-mula kod bahagian hadapan:

$.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);
    }
});

Kemudian tambahkan fungsi senarai dalam pengawal Barangan:

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

Akhir sekali, tambahkan peraturan dalam penghalaan:

Route::get('/goods/list', 'index/Goods/list');

Jalankan program dan akses laluan /barang/senarai untuk melihat data JSON yang dikembalikan.

Artikel ini hanya memperkenalkan beberapa kaedah penggunaan asas kelas Json dalam rangka kerja ThinkPHP5 Terdapat lebih banyak penggunaan lanjutan yang perlu diterokai sendiri oleh pembaca. Saya harap artikel ini dapat memberikan sedikit rujukan untuk semua orang memahami operasi JSON bagi rangka kerja ThinkPHP5.

Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menggunakan kaedah JSON dalam thinkphp5. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn