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

Mari kita bincangkan tentang cara menggunakan kaedah JSON dalam thinkphp5

PHPz
Lepaskan: 2023-04-07 14:08:47
asal
2174 orang telah melayarinya

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}
Salin selepas log masuk

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 )
Salin selepas log masuk

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);
Salin selepas log masuk

atau dengan cara berikut:

$json = json($data);
Salin selepas log masuk
  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);
Salin selepas log masuk

atau:

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

(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');
Salin selepas log masuk

(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);
Salin selepas log masuk

(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);
Salin selepas log masuk

(5) kaedah pengepala

Kaedah pengepala digunakan untuk menetapkan maklumat pengepala respons.

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

(6) kaedah pilihan

kaedah pilihan digunakan untuk menetapkan pilihan respons.

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

(7) kaedah hantar

Kaedah hantar digunakan untuk menghantar data respons.

$json = new Json($data);
$json->send();
Salin selepas log masuk
  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);
    }
});
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

Akhir sekali, tambahkan peraturan dalam penghalaan:

Route::get('/goods/list', 'index/Goods/list');
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan