天天看點

PHP JSON

本章節我們将為大家介紹如何使用 PHP 語言來編碼和解碼 JSON 對象。

在 php5.2.0 及以上版本已經内置 JSON 擴充。

函數

描述

json_encode

對變量進行 JSON 編碼

json_decode

對 JSON 格式的字元串進行解碼,轉換為 PHP 變量

json_last_error

傳回最後發生的錯誤

PHP json_encode() 用于對變量進行 JSON 編碼,該函數如果執行成功傳回 JSON 資料,否則傳回 FALSE 。

<b>value</b>: 要編碼的值。該函數隻對 UTF-8 編碼的資料有效。

<b>options</b>:由以下常量組成的二進制掩碼 JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR。

要注意的是 JSON_UNESCAPED_UNICODE 選項,如果我們不希望中文被編碼,可以添加該選項。

以下執行個體示範了如何将 PHP 數組轉換為 JSON 格式資料:

以上代碼執行結果為:

以下執行個體示範了如何将 PHP 對象轉換為 JSON 格式資料:

&lt;?php

   class Emp {

       public $name = "";

       public $hobbies  = "";

       public $birthdate = "";

   }

   $e = new Emp();

   $e-&gt;name = "sachin";

   $e-&gt;hobbies  = "sports";

   $e-&gt;birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p");

   $e-&gt;birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));

   echo json_encode($e);

?&gt;

   $arr = array('runoob' =&gt; '菜鳥教程', 'taobao' =&gt; '淘寶網');

   echo json_encode($arr); // 編碼中文

   echo PHP_EOL;  // 換行符

   echo json_encode($arr, JSON_UNESCAPED_UNICODE);  // 不編碼中文

PHP json_decode() 函數用于對 JSON 格式的字元串進行解碼,并轉換為 PHP 變量。

<b>json_string</b>: 待解碼的 JSON 字元串,必須是 UTF-8 編碼資料

<b>assoc</b>: 當該參數為 TRUE 時,将傳回數組,FALSE 時傳回對象。

<b>depth</b>: 整數類型的參數,它指定遞歸深度

<b>options</b>: 二進制掩碼,目前隻支援 JSON_BIGINT_AS_STRING 。

以下執行個體示範了如何解碼 JSON 資料:

   $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

   var_dump(json_decode($json));

   var_dump(json_decode($json, true));