程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> Zend Framework處理Json數據方法詳解

Zend Framework處理Json數據方法詳解

編輯:PHP綜合

本文實例講述了Zend Framework處理Json數據的方法。分享給大家供大家參考,具體如下:

JSON分隔符及意義

{}    用於實現對象的包含,對象都包含在大括號中
,    逗號用於分隔對象的不同屬性,或者數組的元素
[]    用於存放數組,數組將存放在中括號中
:    用於表示鍵/值對的值,冒號前為鍵,冒號後為該鍵的值

JSON示例

{
  "addressbook":{
    "name":"Mary Lebow",
    "address":{
      "street":"5 Main Street",
      "city":"San Diego,CA",
      "zip":91912
    },
    "phoneNumbers":[
      "619 332-3452",
      "664 223-4667"
    ]
  }
}

使用JSON

語法:$json = Zend_Json::encode($phpNative);
說明:其中,參數$phpNative為PHP常見的數據類型,可以是數組、對象或者其他類型的數據。
函數返回值$json為符合JSON格式的一個字符串。

示例:

<?php
require_once("Zend/Json.php");
$temp = array(
  "a"=>0,
  "b"=>1,
  "c"=>array(
    "c-1"=>21,
    "c-2"=>22,
    "c-3"=>23,
  ),
  "d"=>3
);
$json = Zend_Json::encode($temp);
echo "臨時數組內容為:";
echo "<pre>";
print_r($temp);
echo "</pre>";
echo "轉換為JSON格式內容為:";
echo "<pre>";
print_r($json);
echo "</pre>";

結果為:

臨時數組內容為:

Array
(
  [a] => 0
  [b] => 1
  [c] => Array
    (
      [c-1] => 21
      [c-2] => 22
      [c-3] => 23
    )
  [d] => 3
)

轉換為JSON格式內容為:

{"a":0,"b":1,"c":{"c-1":21,"c-2":22,"c-3":23},"d":3}

將JSON解碼為普通數據

語法:$phpNative = Zend_Json::decode($json);

示例:

<?php
require_once("Zend/Json.php");
$json = "{
  \"addressbook\":{
    \"name\":\"zhangsan\",
    \"address\":{
      \"street\":\"Chang an jie\",
      \"city\":\"BeiJing\",
      \"zip\":100001
    },
    \"phoneNumbers\":[
      \"010-12345678\",
      \"010-11111111\"
    ]
  }
}";
echo "解碼前為:";
echo "<pre>";
print_r($json);
echo "</pre>";
$native = Zend_Json::decode($json);
echo "解碼後為:";
echo "<pre>";
print_r($native);
echo "</pre>";

輸出結果為:

解碼前為:
{
  "addressbook":{
    "name":"zhangsan",
    "address":{
      "street":"Chang an jie",
      "city":"BeiJing",
      "zip":100001
    },
    "phoneNumbers":[
      "010-12345678",
      "010-11111111"
    ]
  }
}
解碼後為:
Array
(
  [addressbook] => Array
    (
      [name] => zhangsan
      [address] => Array
        (
          [street] => Chang an jie
          [city] => BeiJing
          [zip] => 100001
        )
      [phoneNumbers] => Array
        (
          [0] => 010-12345678
          [1] => 010-11111111
        )
    )
)

說明:

在使用此方法對JSON內容進行解碼時,可以將其解碼為數組,也可以將其解碼為對象。

具體有Zend_Json::decode()方法的第二個參數決定。

語法格式如下

phpNative=ZendJson::decode(phpNative=ZendJson::decode(json,Zend_Json::TYPE_OBJECT);

上個例子解碼為對象後的結果為

解碼後為:

stdClass Object
(
  [addressbook] => stdClass Object
    (
      [name] => zhangsan
      [address] => stdClass Object
        (
          [street] => Chang an jie
          [city] => BeiJing
          [zip] => 100001
        )
      [phoneNumbers] => Array
        (
          [0] => 010-12345678
          [1] => 010-11111111
        )
    )
)

小結:

Json的使用還是比較簡單的,在接口應用上需要Json。它可以在不同的語言中共用。可以靈活的傳遞數據。作用與XML類似,但是比XML要節省帶寬。

PS:針對json的各種常用操作,還可參考使用本站相關json在線工具:

在線JSON代碼檢驗、檢驗、美化、格式化工具:
http://tools.jb51.net/code/json

JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat

在線XML/JSON互相轉換工具:
http://tools.jb51.net/code/xmljson

json代碼在線格式化/美化/壓縮/編輯/轉換工具:
http://tools.jb51.net/code/jsoncodeformat

在線json壓縮/轉義工具:
http://tools.jb51.net/code/json_yasuo_trans

C語言風格/HTML/CSS/json代碼格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json

更多關於zend相關內容感興趣的讀者可查看本站專題:《Zend FrameWork框架入門教程》、《php優秀開發框架總結》、《Yii框架入門及常用技巧總結》、《ThinkPHP入門教程》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家基於Zend Framework框架的PHP程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved