| 
                          
                
                                    
                    
                      
	| 發表者 | 
	討論內容 | 
 
	 冷日 (冷日) | 
	發表時間:2015/8/4 9:34 | 
 
	
	
	- Webmaster
 
		  
	 
	 
	
		- 註冊日: 2008/2/19
 
		- 來自: 
 
		- 發表數: 15773
 
			 
	 | 
	
	
	- [轉貼]你不可不知的 JSON 基本介紹
 
		還不知道 JSON 是什麼嘛?本篇教學會帶您瞭解 JSON 在網站上的應用,以及運作流程跟使用 PHP 和 JavaScript 來處理 JSON。假如您現在的工作就是網站設計師,相信一定聽過 JSON,但是什麼是 JSON,它能夠做什麼,及您能透過它在網站上做到哪些事情呢? 透過本篇介紹您可以瞭解基本的 JSON,底下會列出本篇會提到的重點:  - 什麼是 JSON
  - JSON 應用在哪些地方
  - 如何建立 JSON 字串
  - 一個簡單的 JSON 範例
  - JSON vs XML
  - 如何透過 PHP 及 JavaScript 使用 JSON
  什麼是 JSONJSON 是個以純文字為基底去儲存和傳送簡單結構資料,你可以透過特定的格式去儲存任何資料(字串,數字,陣列,物件),也可以透過物件或陣列來傳送較複雜的資料。一旦建立了您的 JSON 資料,就可以非常簡單的跟其他程式溝通或交換資料,因為 JSON 就只是純文字個格式。 JSON 的優點如下:  - 相容性高
  - 格式容易瞭解,閱讀及修改方便
 
 - 支援許多資料格式 (number,string,booleans,nulls,array,associative array)
  - 許多程式都支援函式庫讀取或修改 JSON 資料
   JSON 應用在哪些地方JSON 最常用用在 Web 網頁程式從 Server 端傳送資料給 browser,典型範例就是透過 AJAX 方式交換 JSON 資料,底下簡單舉個範例  - 使用者點選了線上產品縮圖
  - JavaScript 透過 AJAX 方式將產品 ID 傳送給伺服器端
  - 伺服器端收到 ID,將產品資料 (ex 價格,描述) 編碼成 JSON 資料,並且回傳給瀏覽器
  - JavaScript 收到 JSON 資料,將其解碼 (decode) 並且將資料顯示在網頁上
  您也可以透過網頁將 JSON 資料傳到伺服器端,這都是可以的,把 POST 或 GET 資訊編碼成 JSON 格式即可,如果有在使用 jQuery,它提供了兩個函式處理 JSON,分別是 getJSON 跟 parseJSON。 如何建立 JSON 字串可以透過底下規則來建立 JSON 字串  - JSON 字串可以包含陣列 Array 資料或者是物件 Object 資料
  - 陣列可以用 [  ] 來寫入資料
  - 物件可以用 {  } 來寫入資料
  - name / value 是成對的,中間透過 ( :
 ) 來區隔  物件或陣列的 value 值可以如下:  - 數字 (整數或浮點數)
  - 字串 (請用 “” 括號)
  - 布林函數 (boolean) (true 或 false)
  - 陣列 (請用 [ ] )
  - 物件 (請用 { } )
  - NULL
  一個簡單的 JSON 範例
  "orderID": 12345,
  "shopperName": "John Smith",
  "shopperEmail": "johnsmith@example.com",
  "contents": [
    {
      "productID": 34,
      "productName": "SuperWidget",
      "quantity": 1
    },
    {
      "productID": 56,
      "productName": "WonderWidget",
      "quantity": 3
    }
  ],
  "orderCompleted": true
}由上面例子我們可以發現 contents 陣列裡面又包含物件,透過上面例子,我們寫成 JavaScript 如下: <script type="text/javascript">
var cart = {
  "orderID": 12345,
  "shopperName": "John Smith",
  "shopperEmail": "johnsmith@example.com",
  "contents": [
    {
      "productID": 34,
      "productName": "SuperWidget",
      "quantity": 1
    },
    {
      "productID": 56,
      "productName": "WonderWidget",
      "quantity": 3
    }
  ],
  "orderCompleted": true
};
</script>JSON vs XML在許多方面,你可以想像 JSON 來替代 XML,在過去 Web Application 開發 AJAX 都是透過 XML 來交換資料,但是你可以發現近幾年來 JSON 已經漸漸取代 XML 格式了,為什麼會變成這樣呢?因為 JSON 格式容易閱讀且好修改,許多程式語言分別開發了函式庫來處理 JSON 資料,我們可以把上面的 JSON 資料改寫成 XML 如下: <object>
  <property>
    <key>orderID</key>
    <number>12345</number>
  </property>
  <property>
    <key>shopperName</key>
    <string>John Smith</string>
  </property>
  <property>
    <key>shopperEmail</key>
    <string>johnsmith@example.com</string>
  </property>
  <property>
    <key>contents</key>
    <array>
      <object>
        <property>
          <key>productID</key>
          <number>34</number>
        </property>
        <property>
          <key>productName</key>
          <string>SuperWidget</string>
        </property>
        <property>
          <key>quantity</key>
          <number>1</number>
        </property>
      </object>
      <object>
        <property>
          <key>productID</key>
          <number>56</number>
        </property>
        <property>
          <key>productName</key>
          <string>WonderWidget</string>
        </property>
        <property>
          <key>quantity</key>
          <number>3</number>
        </property>
      </object>
    </array>
  </property>
  <property>
    <key>orderCompleted</key>
    <boolean>true</boolean>
  </property>
</object>大家有沒有發現 XML 的資料量遠大於 JSON 資料量,這也是 JSON 優於 XML 的原因之一 如何利用 JavaScript 來處理 JSON 資料直接看例子比較快: 
<script type="text/javascript">
var cart = {
  "orderID": 12345,
  "shopperName": "John Smith",
  "shopperEmail": "johnsmith@example.com",
  "contents": [
    {
      "productID": 34,
      "productName": "SuperWidget",
      "quantity": 1
    },
    {
      "productID": 56,
      "productName": "WonderWidget",
      "quantity": 3
    }
  ],
  "orderCompleted": true
};
alert ( JSON.stringify( cart ) );
</script>
透過 JSON.stringify 來轉換資料,產生結果如下 
{"orderID":12345,"shopperName":"John Smith","shopperEmail":"johnsmith@example.com",
"contents":[{"productID":34,"productName":"SuperWidget","quantity":1},
{"productID":56,"productName":"WonderWidget","quantity":3}],
"orderCompleted":true}
如何將 JSON 字串傳入 JavaScript 變數 <script type="text/javascript">
var jsonString = '                          \
{                                           \
  "orderID": 12345,                         \
  "shopperName": "John Smith",              \
  "shopperEmail": "johnsmith@example.com",  \
  "contents": [                             \
    {                                       \
      "productID": 34,                      \
      "productName": "SuperWidget",         \
      "quantity": 1                         \
    },                                      \
    {                                       \
      "productID": 56,                      \
      "productName": "WonderWidget",        \
      "quantity": 3                         \
    }                                       \
  ],                                        \
  "orderCompleted": true                    \
}                                           \
';
var cart = JSON.parse ( jsonString );
alert ( cart.shopperEmail );
alert ( cart.contents[1].productName );
</script>結果如下 cart.shopperEmail 輸出 johnsmith@example.com cart.contents[1].productName 輸出 WonderWidget 利用 PHP 建立或讀取 JSON 資料PHP 直接有寫好函式庫可以處理 JSON 字串,就是利用 json_encode 跟 json_decode 範例: <?php
$cart = array(
  "orderID" => 12345,
  "shopperName" => "John Smith",
  "shopperEmail" => "johnsmith@example.com",
  "contents" => array(
    array(
      "productID" => 34,
      "productName" => "SuperWidget",
      "quantity" => 1
    ),
    array(
      "productID" => 56,
      "productName" => "WonderWidget",
      "quantity" => 3
    )
  ),
  "orderCompleted" => true
);
echo json_encode( $cart );
?>輸出 
{"orderID":12345,"shopperName":"John Smith","shopperEmail":"johnsmith@example.com","contents":[{"productID":34,"productName":"SuperWidget","quantity":1},{"productID":56,"productName":"WonderWidget","quantity":3}],"orderCompleted":true}
大家可以發現,我們只要用 array 方式將資料輸出,再透過 json_encode 就可以了,接下來看看底下 PHP 如何讀取 JSON 字串 <?php
$jsonString = '
{
  "orderID": 12345,
  "shopperName": "John Smith",
  "shopperEmail": "johnsmith@example.com",
  "contents": [
    {
      "productID": 34,
      "productName": "SuperWidget",
      "quantity": 1
    },
    {
      "productID": 56,
      "productName": "WonderWidget",
      "quantity": 3
    }
  ],
  "orderCompleted": true
}
';
$cart = json_decode( $jsonString );
echo $cart->shopperEmail . "<br>";
echo $cart->contents[1]->productName . "<br>";
?>很簡單吧,PHP 利用了 json_decode 方式將 json 轉成變數資料以便讀取內容。 結論這篇介紹主要是讓大家對 JSON 有基本得瞭解,以及如何用 JavaScript 跟 PHP 處理 JSON 資料,其實就不難,希望對大家有幫助。 本篇範例皆來自 JSON Basics: What You Need to Know 文章  原文出處:你不可不知的 JSON 基本介紹 | 小惡魔 - 電腦技術 - 工作筆記 - AppleBOY 
	 
	 | 
 
	| 
	
	
	 | 
 
	 冷日 (冷日) | 
	發表時間:2015/8/4 9:40 | 
 
	
	
	- Webmaster
 
		  
	 
	 
	
		- 註冊日: 2008/2/19
 
		- 來自: 
 
		- 發表數: 15773
 
			 
	 | 
	
	
	- [轉貼]PHP 讓 json_encode() 指定回傳格式
 
		PHP 讓 json_encode() 指定回傳格式PHP 回傳 JSON 很方便, 只要將資料經過 json_encode() 就解決了. 不過因為 PHP 自動轉換型別, 造成很多資料都習慣存成字串, 希望在輸出 JSON 的時候, 數字部份可以輸出成數字, 該怎麼做呢? 另一個問題, PHP 轉換成 JSON, 部份陣列會被轉成物件(因為 JavaScript 陣列的 Key 必須是數字, 所以會轉成物件), 要全部強制轉成物件, 該怎麼做呢?   PHP 讓 json_encode() 指定回傳格式上述的問題, json_encode() 的參數都可以解決.  json_encode() 有這些參數可以用:  - JSON_HEX_QUOT
  - JSON_HEX_TAG
  - JSON_HEX_AMP
  - JSON_HEX_APOS
  - JSON_NUMERIC_CHECK
  - JSON_PRETTY_PRINT
  - JSON_UNESCAPED_SLASHES
  - JSON_FORCE_OBJECT
 
  PHP 判斷型別輸出 JSON 數字型態主要靠 json_encode 的 JSON_NUMERIC_CHECK 參數, ex: <?php
echo json_encode(array('id' => '123', 'data' => 'abc'), JSON_NUMERIC_CHECK);
echo json_encode(array('id' => '123', 'data' => 'abc'));
echo json_encode(array('id' => 123, 'data' => 'abc'));
?>輸出結果 - {"id":123,"data":"abc"}
  - {"id":"123","data":"abc"}
  - {"id":123,"data":"abc"}
  PHP 強迫輸出 JSON 物件格式主要靠 json_encode 的 JSON_FORCE_OBJECT 參數, ex: <?php
echo json_encode(array(1, 2, 3));
echo json_encode(array(1, 2, 3), JSON_FORCE_OBJECT);
echo json_encode(array(array(1, 2, 3)));
echo json_encode(array(array(1, 2, 3)), JSON_FORCE_OBJECT);
echo json_encode(array(1 => 123, 2 => 'abc'));
?> 輸出結果 - [1,2,3]
  - {"0":1,"1":2,"2":3}
  - [[1,2,3]]
  - {"0":{"0":1,"1":2,"2":3}}
  - {"1":123,"2":"abc"} // 本來就會輸出 Object
   原文出處:PHP 讓 json_encode() 指定回傳格式 - Tsung's Blog 
	 
	 | 
 
	| 
	
	
	 | 
 
	 冷日 (冷日) | 
	發表時間:2015/8/4 9:43 | 
 
	
	
	- Webmaster
 
		  
	 
	 
	
		- 註冊日: 2008/2/19
 
		- 來自: 
 
		- 發表數: 15773
 
			 
	 | 
	
	
	- [轉貼]使用 jquery 跟 php 接 json 格式資料
 
		- 使用jquery跟php接json格式資料
  分享時間:2012-10-09 21:05:39
  首先請php吐一個json格式的檔案出來
 
 
    <?php
     $city = array();
     $city["0"] = array ("name"=>"Jason", "tel"=>"0919000000", "address"=> "新竹");
     $city["1"] = array ("name"=>"May", "tel"=>"0928222222", "address"=> "桃園");
     echo json_encode($city);
    ?>
  吐出來的json格式長這樣:
 
 
    [
        { name: "Jason", tel: "0919000000", address: "新竹" },
        { name: "May", tel: "0928000000", address: "桃園" },
    ]
  json是一種javascript的物件,因為他本身是javascript,轉換起來沒問題,加上不像xml這麼肥,所以這幾年來很流行。
  因為他類似xml,所以我們也可以做巢狀的結構,像這樣包起來。
 
 
    $dataArr=array(
        "date"=>"2012-01-01",
        "shoes" => array(
            "kind1" => 2,
            "kind2" =>3
    )
  真正在應用的時候會把資料庫撈出來的資料,用迴圈的方式弄成json的格式,再用ajax去parse出來。
 
 
    $.ajax({
          url: "json.php",
          type: "GET",
          dataType: "json",
          success: function(json) {
            }
    });
  接成功後再把資料撈出來就可以了。
 
 
    var NumOfData = json.length; //取出物件長度
    //繞行把資料alert出來
    for (var i = 0; i < NumOfData; i++) {
         alert("Name: "+data[i]["name"]);
         alert("Tel: "+data[i]["tel"]);
         alert("Address: "+data[i]["address"]);
    }
  所以你可以這樣把資料append到DOM裡。
 
 
    var $div=$("div");
    for (var i = 0; i < NumOfData; i++) {
        $div.append("Name: "+json[i]["name"]+", Tel: "+json[i]["tel"]+", Address: "+json[i]["address"]);
        $div.append("<br/>");
    }
  如果要取到第二層資料,則是這樣
 
 
    json[i]["level1"]["level2"]
 
  原文出處:使用jquery跟php接json格式資料 - iT邦幫忙::IT知識分享社群 
	 
	 | 
 
	| 
	
	
	 | 
 
| 
 | 
 
	 冷日 (冷日) | 
	發表時間:2015/8/4 9:46 | 
 
	
	
	- Webmaster
 
		  
	 
	 
	
		- 註冊日: 2008/2/19
 
		- 來自: 
 
		- 發表數: 15773
 
			 
	 | 
	
	
	- [轉貼]在 PHP 語言中使用 JSON
 
		在PHP語言中使用JSON目前, JSON已經成為最流行的數據交換格式之一,各大網站的API幾乎都支持它。 我寫過一篇 《數據類型和JSON格式》,探討它的設計思想。今天,我想總結一下PHP語言對它的支持,這是開發互聯網應用程式(特別是編寫API)必須瞭解的知識。 從5.2版本開始,PHP原生提供 json_encode()和 json_decode()函數,前者用於編碼,後者用於解碼。 一、json_encode() 該函數主要用來將數組和對象,轉換為json格式。先看一個數組轉換的例子: 
 
  $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
  
  echo json_encode($arr);
  
 
 結果為 
 
  {"a":1,"b":2,"c":3,"d":4,"e":5}
  
 
 再看一個對像轉換的例子: 
 
  $obj->body           = 'another post';
  
  $obj->id             = 21;
  
  $obj->approved       = true;
  
  $obj->favorite_count = 1;
  
  $obj->status         = NULL;
  
  echo json_encode($obj);
  
 
 
 結果為 
 
  {
    "body":"another post",
  
    "id":21,
  
    "approved":true,
  
    "favorite_count":1,
  
    "status":null
  }
  
 
 由於json只接受utf-8編碼的字符,所以json_encode()的參數必須是utf-8編碼,否則會得到空字符或者null。當中文使用GB2312編碼,或者外文使用ISO-8859-1編碼的時候,這一點要特別注意。 二、索引數組和關聯數組 PHP支持兩種數組,一種是只保存"值"(value)的索引數組(indexed array),另一種是保存"名值對"(name/value)的關聯數組(associative array)。 由於javascript不支持關聯數組,所以json_encode()只將索引數組(indexed array)轉為數組格式,而將關聯數組(associative array)轉為對像格式。 比如,現在有一個索引數組 
 
  $arr = Array('one', 'two', 'three');
  
  echo json_encode($arr);
  
 
 結果為: 
 
 
 如果將它改為關聯數組: 
 
  $arr = Array('1'=>'one', '2'=>'two', '3'=>'three');
   
  echo json_encode($arr);
    
 
 結果就變了: 
 
  {"1":"one","2":"two","3":"three"}
  
 
 注意,數據格式從"[]"(數組)變成了"{}"(對像)。 如果你需要將"索引數組"強制轉化成"對像",可以這樣寫 
 
  json_encode( (object)$arr );
  
 
 
 或者 
 
  json_encode ( $arr, JSON_FORCE_OBJECT );
  
 
 
 三、類(class)的轉換 下面是一個PHP的類: 
 
  class Foo {
  
    const     ERROR_CODE = '404';
  
    public    $public_ex = 'this is public';
  
    private   $private_ex = 'this is private!';
  
    protected $protected_ex = 'this should be protected';
   
    public function getErrorCode() {
  
      return self::ERROR_CODE;
  
    }
  
  }
  
 
 現在,對這個類的實例進行json轉換: 
 
  $foo = new Foo;
  
  $foo_json = json_encode($foo);
  
  echo $foo_json;
  
 
 
 輸出結果是 
 
  {"public_ex":"this is public"}
  
 
 可以看到,除了公開變量(public),其他東西(常量、私有變量、方法等等)都遺失了。 四、json_decode() 該函數用於將json文本轉換為相應的PHP數據結構。下面是一個例子: 
 
  $json = '{"foo": 12345}';
   
  $obj = json_decode($json);
  
  print $obj->{'foo'}; // 12345
  
 
 通常情況下,json_decode()總是返回一個PHP對象,而不是數組。比如: 
 
  $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
   
  var_dump(json_decode($json));
  
 
 結果就是生成一個PHP對像: 
 
  object(stdClass)#1 (5) {
  
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
  
  }
  
 
 如果想要強制生成PHP關聯數組,json_decode()需要加一個參數true: 
 
  $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
   
  var_dump(json_decode($json,true));
  
 
 結果就生成了一個關聯數組: 
 
  array(5) {
  
     ["a"] => int(1)
     ["b"] => int(2)
     ["c"] => int(3)
     ["d"] => int(4)
     ["e"] => int(5)
  
  }
  
 
 五、json_decode()的常見錯誤 下面三種json寫法都是錯的,你能看出錯在哪裡嗎? 
 
  $bad_json = "{ 'bar': 'baz' }";
  
  $bad_json = '{ bar: "baz" }';
  
  $bad_json = '{ "bar": "baz", }';
  
 
 對這三個字符串執行json_decode()都將返回null,並且報錯。 第一個的錯誤是,json的分隔符(delimiter)只允許使用雙引號,不能使用單引號。第二個的錯誤是,json名值對的"名"(冒號左邊的部分),任何情況下都必須使用雙引號。第三個的錯誤是,最後一個值之後不能添加逗號(trailing comma)。   另外,json只能用來表示對像(object)和數組(array),如果對一個字符串或數值使用json_decode(),將會返回null。 
 
  var_dump(json_decode("Hello World")); //null
  
 
 六、參考材料   [1] PHP Manual   [2] Ed Finkler, JSON is Everybody's Friend 
 (完)
   原文出處:在PHP语言中使用JSON - 阮一峰的网络日志 
	 
	 | 
 
	| 
	
	
	 | 
 
| 
 
 
 | 
 
	 冷日 (冷日) | 
	發表時間:2015/8/4 9:50 | 
 
	
	
	- Webmaster
 
		  
	 
	 
	
		- 註冊日: 2008/2/19
 
		- 來自: 
 
		- 發表數: 15773
 
			 
	 | 
	
	
	- [轉貼] php 中 json_decode() 和 json_encode() 的使用方法
 
		php中json_decode()和json_encode()的使用方法 1.json_decode()   
 json_decode  (PHP 5 >= 5.2.0, PECL json >= 1.2.0)   json_decode — 對 JSON 格式的字符串進行編碼   說明  mixed json_decode ( string $json [, bool $assoc ] )  接受一個 JSON 格式的字符串並且把它轉換為 PHP 變量   參數   json  待解碼的 json string 格式的字符串。   assoc  當該參數為 TRUE 時,將返回 array 而非 object 。    返回值  Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned.   範例   Example #1 json_decode() 的例子    代碼如下:   $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';  var_dump(json_decode($json));  var_dump(json_decode($json, true));  ?> 
   上例將輸出:    代碼如下:   object(stdClass)#1 (5) {  ["a"] => int(1)  ["b"] => int(2)  ["c"] => int(3)  ["d"] => int(4)  ["e"] => int(5)  }    array(5) {  ["a"] => int(1)  ["b"] => int(2)
  ["c"] => int(3)  ["d"] => int(4)  ["e"] => int(5)  } 
     代碼如下:   $data='[{"Name":"a1","Number":"123","Contno":"000","QQNo":""},{"Name":"a1","Number":"123","Contno":"000","QQNo":""},{"Name":"a1","Number":"123","Contno":"000","QQNo":""}]';  echo json_decode($data); 
   結果為:    代碼如下:   Array ( [0] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [1] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [2] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) ) 
   可以看出經過json_decode()編譯出來的是對像,現在輸出json_decode($data,true)試下    代碼如下:   echo json_decode($data,true); 
   結果:    代碼如下: 
  Array ( [0] => Array ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [1] => Array ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [2] => Array ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) ) 
   可以看出 json_decode($data,true)輸出的一個關聯數組,由此可知json_decode($data)輸出的是對像,而json_decode("$arr",true)是把它強制生成PHP關聯數組.   2.json_encode()   
 json_encode  (PHP 5 >= 5.2.0, PECL json >= 1.2.0)   json_encode — 對變量進行 JSON 編碼   Report a bug 說明  string json_encode ( mixed $value [, int $options = 0 ] )  返回 value 值的 JSON 形式   Report a bug 參數   value  待編碼的 value ,除了resource 類型之外,可以為任何數據類型   該函數只能接受 UTF-8 編碼的數據   options  由以下常量組成的二進制掩碼: 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_UNESCAPED_UNICODE.   Report a bug 返回值  編碼成功則返回一個以 JSON 形式表示的 string 或者在失敗時返回 FALSE 。   Report a bug 更新日誌 版本 說明  5.4.0 options 參數增加常量: JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, 和 JSON_UNESCAPED_UNICODE。  5.3.3 options 參數增加常量:JSON_NUMERIC_CHECK。  5.3.0 增加 options 參數.    Report a bug 範例   Example #1 A json_encode() 的例子    代碼如下:   $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);    echo json_encode($arr);  ?> 
   以上例程會輸出:    代碼如下:   {"a":1,"b":2,"c":3,"d":4,"e":5} 
   Example #2 json_encode() 函數中 options 參數的用法    代碼如下:  
  $a = array('',"'bar'",'"baz"','&blong&', "\xc3\xa9");    echo "Normal: ", json_encode($a), "\n";  echo "Tags: ", json_encode($a, JSON_HEX_TAG), "\n";  echo "Apos: ", json_encode($a, JSON_HEX_APOS), "\n";  echo "Quot: ", json_encode($a, JSON_HEX_QUOT), "\n";  echo "Amp: ", json_encode($a, JSON_HEX_AMP), "\n";  echo "Unicode: ", json_encode($a, JSON_UNESCAPED_UNICODE), "\n";  echo "All: ", json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), "\n\n";    $b = array();    echo "Empty array output as array: ", json_encode($b), "\n";  echo "Empty array output as object: ", json_encode($b, JSON_FORCE_OBJECT), "\n\n";    $c = array(array(1,2,3));    echo "Non-associative array output as array: ", json_encode($c), "\n";      echo "Non-associative array output as object: ", json_encode($c, JSON_FORCE_OBJECT), "\n\n";    $d = array('foo' => 'bar', 'baz' => 'long');    echo "Associative array always output as object: ", json_encode($d), "\n";  echo "Associative array always output as object: ", json_encode($d, JSON_FORCE_OBJECT), "\n\n";  ?>
 
   以上例程會輸出:    代碼如下:   Normal: ["","'bar'","\"baz\"","&blong&","\u00e9"]  Tags: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"]  Apos: ["","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"]  Quot: ["","'bar'","\u0022baz\u0022","&blong&","\u00e9"]  Amp: ["","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"]  Unicode: ["","'bar'","\"baz\"","&blong&","e"]  All: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026","e"]    Empty array output as array: []  Empty array output as object: {}    Non-associative array output as array: [[1,2,3]]  Non-associative array output as object: {"0":{"0":1,"1":2,"2":3}}    Associative array always output as object: {"foo":"bar","baz":"long"}  Associative array always output as object: {"foo":"bar","baz":"long"} 
   Example #3 連續與非連續數組示例    代碼如下:  
  echo "連續數組".PHP_EOL;  $sequential = array("foo", "bar", "baz", "blong");  var_dump(  $sequential,  json_encode($sequential)  );    echo PHP_EOL."非連續數組".PHP_EOL;  $nonsequential = array(1=>"foo", 2=>"bar", 3=>"baz", 4=>"blong");  var_dump(  $nonsequential,  json_encode($nonsequential)  );    echo PHP_EOL."刪除一個連續數組值的方式產生的非連續數組".PHP_EOL;  unset($sequential[1]);  var_dump(  $sequential,  json_encode($sequential)  );  ?> 
   以上例程會輸出:    代碼如下:   連續數組  array(4) {  [0]=>  string(3) "foo"  [1]=>  string(3) "bar"  [2]=>  string(3) "baz"  [3]=>  string(5) "blong"  }  string(27) "["foo","bar","baz","blong"]"    非連續數組  array(4) {  [1]=>  string(3) "foo"  [2]=>  string(3) "bar"  [3]=>  string(3) "baz"  [4]=>  string(5) "blong"  }  string(43) "{"1":"foo","2":"bar","3":"baz","4":"blong"}"    刪除一個連續數組值的方式產生的非連續數組  array(3) {
  [0]=>  string(3) "foo"  [2]=>  string(3) "baz"  [3]=>  string(5) "blong"  }  string(33) "{"0":"foo","2":"baz","3":"blong"}" 
     代碼如下:   $obj->Name= 'a1';$obj->Number ='123';  $obj->Contno= '000';  echo json_encode($obj); 
   結果為:    代碼如下:   {"Name":"a1",  "Number":"123",  "Contno":"000"  } 
   可以看出json_encode()和json_decode()是編譯和反編譯過程,注意json只接受utf-8編碼的字符,所以json_encode()的參數必須是utf-8編碼,否則會得到空字符或者null。   原文出處: php中json_decode()和json_encode()的使用方法_php技巧_脚本之家 
	 
	 | 
 
	| 
	
	
	 | 
 
 
 
 
 
                       |