亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

php實(shí)現(xiàn)將普通數(shù)據(jù)轉(zhuǎn)化為json數(shù)據(jù)

 更新時(shí)間:2023年11月01日 11:04:08   作者:zgscwxd  
在日常的開發(fā)工作中免不了要寫接口,json格式文本的輸出是制作接口必須掌握的,所以本文主要為大家詳細(xì)介紹了php如何將普通數(shù)據(jù)轉(zhuǎn)化為json數(shù)據(jù),需要的可以參考下

PHP API接口必備之輸出json格式數(shù)據(jù)

在日常的開發(fā)工作中免不了要寫接口,json格式文本的輸出是制作接口必須掌握的,現(xiàn)在通行的接口基本是采用json格式的數(shù)據(jù),簡(jiǎn)單的php json文件輸出

json接口如何生成?或者是如何將普通數(shù)據(jù)轉(zhuǎn)化為json數(shù)據(jù)?

注意:如果不加header直接輸出json_encode的值的話,返回的是字符串不是對(duì)象,js那邊就需要先eval('('+data+')')轉(zhuǎn)化為對(duì)象,再進(jìn)行取值

<?php
header('content-type:application/json;charset=utf8');
$arr=array(
array(
'name'=>'zhangsan',
'sex' =>'man',
'age' =>18,
),
array(
'name'=>'lisi',
'sex' =>'women',
'age' =>20,
),
array(
'name'=>'wangwu',
'sex' =>'man',
'age' =>19,
),
);
$json=json_encode($arr);
echo $json;
?>

這樣,我們就可以得到一個(gè)輸出形式為json格式的頁(yè)面

使用 php 來(lái)做一個(gè)簡(jiǎn)單的接口,客戶端傳入數(shù)據(jù),該接口返回 JSON 格式數(shù)據(jù)

使用php 造json數(shù)據(jù)接口

<?php
/*
* (PHP簡(jiǎn)單封裝JSON數(shù)據(jù)接口)
* @param integer $code 狀態(tài)碼
* @param string $message 提示信息
* @param array $data 數(shù)據(jù)
* return json(string)
*/ 
header('content-type:application/json;charset=utf8');
class Response {
    public static function json($code, $message = '', $data = []){
        # 判斷參數(shù)有效性及錯(cuò)誤處理
            // code...
        # 結(jié)果(最終數(shù)組)
        $result = [
            "code" => $code,
            "message" => $message,
            "data" => $data
        ];
        # 轉(zhuǎn)換為json并打印測(cè)試
        echo json_encode($result);
        exit;
    }
}
# 創(chuàng)建數(shù)組
$arr = [
    "id" => "1",
    "name" => "wang"
];
# 調(diào)用json接口(假設(shè)狀態(tài)碼200代表成功)
Response::json(200, "數(shù)據(jù)返回成功", $arr);
?>

這樣,我們就可以得到一個(gè)輸出形式為json格式的頁(yè)面

<?php
    header('Content-Type:application/json;charset=utf8');
    $arr = [
        "download_url" => "http://xxx.xxx.xxx.xxx/update/EasyClick/release.iec",
        "version" => "1.1.0",
        "dialog" => true,
        "msg" => "更新公告",
        "force" => false
    ];
    echo json_encode($arr);
?>

PHP json_encode() 用于對(duì)變量進(jìn)行 JSON 編碼,該函數(shù)如果執(zhí)行成功返回 JSON 數(shù)據(jù),否則返回 FALSE 。

PHP json_decode() 函數(shù)用于對(duì) JSON 格式的字符串進(jìn)行解碼,并轉(zhuǎn)換為 PHP 變量。

<?php
 
header('content-type:application/json;charset=utf8');
 
   $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
   $en_ret = json_encode($arr);
   echo $en_ret;
 
   echo "<br>";
   $de_ret = json_decode($en_ret);
   echo $de_ret->e;
   echo "<br>";
 
  
?>

JSON 值可以是:

  • 數(shù)字(整數(shù)或浮點(diǎn)數(shù))
  • 字符串(在雙引號(hào)中)
  • 邏輯值(true 或 false)
  • 數(shù)組(在方括號(hào)中)
  • 對(duì)象(在花括號(hào)中)
  • null

前端一般和后端傳遞數(shù)據(jù)選擇JSON是因?yàn)?/p>

(1)JSON是純文本格式,是獨(dú)立于語(yǔ)言和平臺(tái)的。

(2)生成和解析相對(duì)于XML而言要簡(jiǎn)單。

(3)讀寫的速度更快。

php中json_encode編碼成功的話返回一個(gè)JSON格式的字符串,失敗的話返回一個(gè)false(var_dump一下可以看看是不是string類型)

后端將這個(gè)json數(shù)據(jù)(string)返回給前端,前端再對(duì)這個(gè)json數(shù)據(jù)也就是string進(jìn)行下一步處理。

而json_decode($jsondata,bool),一般是將前臺(tái)傳來(lái)的json數(shù)據(jù)(string)解碼為對(duì)象類型(bool為false時(shí),默認(rèn)false),當(dāng)bool為true時(shí),則將json(string)轉(zhuǎn)化為數(shù)組類型,再進(jìn)下一步處理。

對(duì)象類型的操作和數(shù)組類型是不一樣的

<?php
 
        header('content-type:application/json;charset=utf8');
        $data = array('a'=>'好','b'=>'hi','c'=>'good','d'=>'nice');
        $jsondata = json_encode($data,JSON_UNESCAPED_UNICODE);//加上JSON_UNESCAPED_UNICODE就不會(huì)自動(dòng)對(duì)中文編碼
        echo $jsondata;
        //結(jié)果{"a":"好","b":"hi","c":"good","d":"nice"},一條JSON格式的字符串
        
        $array = json_decode($jsondata,TRUE);
        var_dump($array['b']);//調(diào)用數(shù)組元素
        
        $obj = json_decode($jsondata);
        var_dump($obj->c);//調(diào)用對(duì)象元素
 
 
  
?>

注意: json_encode 和 json_decode只支持utf-8編碼的中文字符,GBK的中文字符要用json就得轉(zhuǎn)換一下
PHP5.4版本,已經(jīng)給Json新增了一個(gè)選項(xiàng): JSON_UNESCAPED_UNICODE。加上這個(gè)選項(xiàng)后,就不會(huì)自動(dòng)把中文編碼了。

PHP數(shù)組與JSON互相轉(zhuǎn)換

PHP數(shù)組與JSON互相轉(zhuǎn)換,數(shù)組轉(zhuǎn)json:json_encode();json轉(zhuǎn)數(shù)組:json_decode();

使用json_encode轉(zhuǎn)json時(shí)會(huì)發(fā)現(xiàn)中文字符會(huì)出現(xiàn)亂碼

只需要在json_encode();函數(shù)中加入JSON_UNESCAPED_UNICODE即可。

1、PHP數(shù)組轉(zhuǎn)JSON

<?php
//header('content-type:application/json;charset=utf8');
$array = Array('title' => '標(biāo)題', 'url' => 'meitu.jpg');
$json = json_encode($array); 
echo $json;
//輸出結(jié)果: {"title":"\u6807\u9898","url":"meitu.jpg"}
?>

2、PHP數(shù)組轉(zhuǎn)JSON中文字符不亂碼

<?php
//header('content-type:application/json;charset=utf8');
$array = Array('title' => '標(biāo)題', 'url' => 'meitu.jpg');
$json = json_encode($array, JSON_UNESCAPED_UNICODE); 
echo $json;
//輸出結(jié)果: {"title":"標(biāo)題","url":"meitu.jpg"}
?>

3、PHP JSON轉(zhuǎn)數(shù)組

<?php
$json = '{"title":"標(biāo)題","url":"meitu.jpg"}';
$array_json=json_decode($json,true);
print_r($array_json);
?>

4、PHP JSON轉(zhuǎn)對(duì)象

<?php
$json = '{"title":"標(biāo)題","url":"meitu.jpg"}';
$Object_json=json_decode($json,false);
print_r($Object_json);
?>

以上就是php實(shí)現(xiàn)將普通數(shù)據(jù)轉(zhuǎn)化為json數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于php數(shù)據(jù)轉(zhuǎn)json的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • PHP排序算法之快速排序(Quick Sort)及其優(yōu)化算法詳解

    PHP排序算法之快速排序(Quick Sort)及其優(yōu)化算法詳解

    這篇文章主要介紹了PHP排序算法之快速排序(Quick Sort)及其優(yōu)化算法,結(jié)合實(shí)例形式分析了php快速排序的原理、實(shí)現(xiàn)方法,并分析了各種優(yōu)化技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2018-04-04
  • PHP單例模式簡(jiǎn)單用法示例

    PHP單例模式簡(jiǎn)單用法示例

    這篇文章主要介紹了PHP單例模式簡(jiǎn)單用法,結(jié)合數(shù)據(jù)庫(kù)操作類實(shí)例形式分析了php單例模式的具體實(shí)現(xiàn)方法與使用技巧,需要的朋友可以參考下
    2017-06-06
  • php下連接mssql2005的代碼

    php下連接mssql2005的代碼

    php下連接mssql2005的代碼,需要的朋友可以參考下。
    2011-01-01
  • thinkphp如何獲取客戶端IP

    thinkphp如何獲取客戶端IP

    這篇文章主要介紹了thinkphp如何正確獲取客戶端IP,除了使用內(nèi)置get_client_ip函數(shù),還有沒(méi)有其他方法?請(qǐng)閱讀下文揭曉答案。
    2015-11-11
  • 在項(xiàng)目中尋找代碼的壞命名

    在項(xiàng)目中尋找代碼的壞命名

    這段時(shí)間一直做項(xiàng)目,所以相對(duì)忙碌些,今天終于有時(shí)間回過(guò)頭來(lái)好好看一下自己寫的代碼,看哪里有問(wèn)題,哪里有壞味道
    2012-07-07
  • php 5.3.5安裝memcache注意事項(xiàng)小結(jié)

    php 5.3.5安裝memcache注意事項(xiàng)小結(jié)

    必須注意php的編譯版本,下載memcache的時(shí)候注意要使用同樣的編譯版本;比如php是使用vc6編譯的,那么memcache也應(yīng)該使用vc6編譯版本。
    2011-04-04
  • PHP中一個(gè)有趣的preg_replace函數(shù)詳解

    PHP中一個(gè)有趣的preg_replace函數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于PHP中一個(gè)有趣的preg_replace函數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用php具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • MacOS 安裝 PHP的圖片裁剪擴(kuò)展Tclip

    MacOS 安裝 PHP的圖片裁剪擴(kuò)展Tclip

    Tclip是一個(gè)頭像自動(dòng)識(shí)別,php圖片裁剪項(xiàng)目。他可以自動(dòng)識(shí)別圖片中的重要區(qū)域,并且在圖片裁剪時(shí)保留重要區(qū)域。下面我們就來(lái)看看如何在MacOS上進(jìn)行安裝。
    2015-03-03
  • PHP中通過(guò)fopen()函數(shù)訪問(wèn)遠(yuǎn)程文件示例

    PHP中通過(guò)fopen()函數(shù)訪問(wèn)遠(yuǎn)程文件示例

    這篇文章主要介紹了PHP中通過(guò)fopen()函數(shù)訪問(wèn)遠(yuǎn)程文件示例,本文講解了fopen函數(shù)的作用、使用它需要的配置問(wèn)題、超時(shí)問(wèn)題等內(nèi)容,并給出了代碼實(shí)例,需要的朋友可以參考下
    2014-11-11
  • PHP中使用BigMap實(shí)例

    PHP中使用BigMap實(shí)例

    這篇文章主要介紹了PHP中使用BigMap實(shí)例,本文直接給出實(shí)現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下
    2015-03-03

最新評(píng)論