2015年3月19日 星期四

在PHP中json的使用方法

最近剛好接到一個要接收其他語言的參數並整了到網站資料庫中的案子,之前就有聽說過JSON可以完成這樣的串接,而且輕量沒有負擔。Json可以串接相當普及的語言像是AJAX、C++、Javascript、Java、Node.js等不同的語言,這對於移動的世界而言是不可不知的技術啊!
剛好看到一篇不錯的文章介紹,以下為PHP使用JSON來介紹

JSON 是個以純文字為基底去儲存和傳送簡單結構資料,你可以透過特定的格式去儲存任何資料(字串,數字,陣列,物件),也可以透過物件或陣列來傳送較複雜的資料。一旦建立了您的 JSON 資料,就可以非常簡單的跟其他程式溝通或交換資料,因為 JSON 就只是純文字個格式。


簡單範例
PHP有兩個函式來處理JSON的資料

json_encode() // 將資料轉成JSON格式
json_decode() // 將JSON資料轉為可處理的資料


此範例是將資料轉為JSON格式

<?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 );
?>


此範例為將JSON轉為PHP可讀檔案

<?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 />";

?>

其實重點就是在json_encode及json_decode這兩個函式的操作,因JSON有自己的格式,所以PHP要讀出來不是大問題,只是兩語言串接的過程是比較需要仔細規劃的。

沒有留言:

張貼留言