真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

thinkphp5中JSON方法如何使用

本篇內(nèi)容介紹了“thinkphp5中JSON方法如何使用”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到錦州網(wǎng)站設(shè)計(jì)與錦州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋錦州地區(qū)。

  1. Json操作簡(jiǎn)介

在PHP中,將數(shù)組轉(zhuǎn)換為JSON格式的數(shù)據(jù)只需要使用json_encode函數(shù)即可。

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

通過(guò)json_decode函數(shù)則可以將JSON格式的數(shù)據(jù)轉(zhuǎn)換為數(shù)組:

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

在ThinkPHP5框架中,JSON操作更加簡(jiǎn)單,框架提供了Json類,可以方便地處理JSON數(shù)據(jù),該類位于think\response\Json.php。

  1. Json類使用

Json類繼承自Response類,Response類是一個(gè)響應(yīng)類的抽象父類,它的主要作用是將響應(yīng)返回給客戶端。Json類的主要作用是將數(shù)據(jù)以JSON格式返回給客戶端。

我們可以通過(guò)以下方式創(chuàng)建Json實(shí)例:

use think\response\Json;

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

或者通過(guò)以下方式創(chuàng)建:

$json = json($data);

  1. Json方法介紹

Json類中提供了多個(gè)方法用于處理JSON數(shù)據(jù),下面我們分別介紹一下。

(1)data方法

data方法用于設(shè)置要返回的數(shù)據(jù)。

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

或者:

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

(2)content方法

content方法用于設(shè)置要返回的數(shù)據(jù)的類型,比如application/json的Content-Type類型。

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

(3)jsonp方法

jsonp方法用于生成JSONP數(shù)據(jù),它接受兩個(gè)參數(shù),第一個(gè)參數(shù)為回調(diào)函數(shù)的名稱,第二個(gè)參數(shù)為要返回的數(shù)據(jù)。

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

(4)code方法

code方法用于設(shè)置響應(yīng)的狀態(tài)碼,比如200代表響應(yīng)成功,404代表請(qǐng)求的資源不存在等。

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

(5)header方法

header方法用于設(shè)置響應(yīng)頭信息。

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

(6)options方法

options方法用于設(shè)置響應(yīng)選項(xiàng)。

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

(7)send方法

send方法用于發(fā)送響應(yīng)數(shù)據(jù)。

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

  1. Json實(shí)例

下面通過(guò)一個(gè)實(shí)例來(lái)了解如何使用Json類。假設(shè)我們需要一個(gè)JSON API返回商品列表,每個(gè)商品都有ID和名稱兩個(gè)屬性。

首先是前端代碼:

$.ajax({
    url: '/goods/list',
    dataType: 'jsonp',
    jsonp: 'callback',
    success: function(data) {
        if (data.code == 200) {
            $.each(data.data, function(index, item) {
                $('#goods-list').append('
  • ' + item.id + ': ' + item.name + '
  • ');             });         } else {             alert('加載商品列表失敗:' + data.msg);         }     },     error: function(jqXHR, textStatus, errorThrown) {         alert('加載商品列表失敗:' + textStatus);     } });

    然后在控制器Goods中添加一個(gè)list函數(shù):

    namespace app\index\controller;
    
    use think\response\Json;
    
    class Goods
    {
        public function list()
        {
            // 模擬商品數(shù)據(jù)
            $goods_list = array(
                array('id' => 1, 'name' => '商品1'),
                array('id' => 2, 'name' => '商品2'),
                array('id' => 3, 'name' => '商品3'),
            );
    
            // 返回JSON數(shù)據(jù)
            $json = json($goods_list);
            $jsonp_callback = input('get.callback');
            if (!empty($jsonp_callback)) {
                $json->jsonp($jsonp_callback);
            }
            return $json;
        }
    }

    最后,在路由中增加一個(gè)規(guī)則:

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

    運(yùn)行程序,訪問(wèn)路徑/goods/list即可看到返回的JSON數(shù)據(jù)。

    “thinkphp5中JSON方法如何使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


    網(wǎng)站標(biāo)題:thinkphp5中JSON方法如何使用
    網(wǎng)頁(yè)路徑:http://weahome.cn/article/poijjs.html

    其他資訊

    在線咨詢

    微信咨詢

    電話咨詢

    028-86922220(工作日)

    18980820575(7×24)

    提交需求

    返回頂部