php使用json_encode()函數可以把數組,對象轉化成JSON格式的字符串,用于和其它頁面的數據交互。今天就說一說PHP中json_encode()函數的定義與使用方法。

PHP json_encode()函數定義

国产视频appjson_encode():可以把數組,對像轉化成json格式的字符串

語法:

json_encode ( value,options,depth)

參數:

国产视频appvalue:要被轉換的數據,可以是對象,數組或字符串

国产视频appoptions:二進制常量,規定一些要轉換的字符串的形式(具體,看文未說明)

depth:設置最大深度。 必須大于0。

注意:depth 參數在一些文檔或教材中是不存在,但在PHP官方文檔中是有介紹的,在平時,不建議使用,略過即可。

PHP 數組轉json

利用 json_encode(函數,可以很輕松的將一維數組,以及二維數組轉換成 JSON 字符串,如以下的示例代碼。

json_encode()轉化一維數組

示例代碼:

<?php
//飛鳥慕魚博客
//一維數組轉成JSON
$arr = array(
    'Name' => 'mochu',
    'PageHome' => 'http://xswdd.cn',
);
var_dump(json_encode($arr));
?>

由于json_encode()函數返回的結果是字符串形式的,可以利用var_dump()函數來打印

打印結果:

string(56) "{"Name":"mochu","PageHome":"http:\/\/xswdd.cn"}"

json_encode()轉化二維數組

示例代碼:

<?php
//飛鳥慕魚博客
//二維數組轉成JSON
$arr = array(
    'Name' => 'mochu',
    'PageHome' => 'http://xswdd.cn',
    'About' => array(
        'Major' => 'PHP',
        'Age' => '18',
        'Address' => 'Shang Hai',
    ),
);
var_dump(json_encode($arr));
?>

打印結果:

string(113) "{"Name":"mochu","PageHome":"http:\/\/xswdd.cn","About":{"Major":"PHP","Age":"18","Address":"Shang Hai"}}"

国产视频app由此可見,json_encode()可以對一維數組,以及二維數組進行轉化,也就是說,此函數可以對PHP的多維數組進行json格式的轉化

php json_encode 中文不轉碼

示例一:

<?php
//飛鳥慕魚博客
$arr = array(
    'Name' => '墨初',
    'PageHome' => '飛鳥墨魚博客',
);
var_dump(json_encode($arr));
?>

打印結果:

string(73) "{"Name":"\u58a8\u521d","PageHome":"\u98de\u9e1f\u58a8\u9c7c\u535a\u5ba2"}"

国产视频app由上面的示例代碼可以看出,json_encode()在轉化含有中文的數組時,轉化后的結果中,中文會以unicode編碼的形式輸出。

示例二,解決中文被編碼的問題

json_encode()函數,php json_encode作用


<?php
//飛鳥慕魚博客
$arr = array(
    'Name' => '墨初',
    'PageHome' => '飛鳥墨魚博客',
);
var_dump(json_encode($arr,JSON_UNESCAPED_UNICODE));
?>

打印結果:

string(49) "{"Name":"墨初","PageHome":"飛鳥墨魚博客"}"

注意:以面的代碼中,給json_encode()函數的第二個參數,設成 JSON_UNESCAPED_UNICODE ,可以完全解決中文被轉碼的問題。

附錄:options 參數列表

JSON_HEX_TAG

所有的 < 和 > 轉換成 \u003C 和 \u003E。 自 PHP 5.3.0 起生效。

国产视频appJSON_HEX_AMP

所有的 & 轉換成 \u0026。 自 PHP 5.3.0 起生效。

国产视频appJSON_HEX_APOS

国产视频app所有的 ' 轉換成 \u0027。 自 PHP 5.3.0 起生效。

国产视频appJSON_HEX_QUOT

所有的 " 轉換成 \u0022。 自 PHP 5.3.0 起生效。

JSON_FORCE_OBJECT 

国产视频app使一個非關聯數組輸出一個類(Object)而非數組。 在數組為空而接受者需要一個類(Object)的時候尤其有用。 自 PHP 5.3.0 起生效。

国产视频appJSON_NUMERIC_CHECK

將所有數字字符串編碼成數字(numbers)。 自 PHP 5.3.3 起生效。

国产视频appJSON_PRETTY_PRINT 

用空白字符格式化返回的數據。 自 PHP 5.4.0 起生效。

国产视频appJSON_UNESCAPED_SLASHES

不要編碼 /。 自 PHP 5.4.0 起生效。

JSON_UNESCAPED_UNICODE 

以字面編碼多字節 Unicode 字符(默認是編碼成 \uXXXX)。 自 PHP 5.4.0 起生效。