Zend Framework处理Json数据方法详解


Posted in PHP onDecember 09, 2016

本文实例讲述了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.3water.com/code/json

JSON在线格式化工具:
http://tools.3water.com/code/jsonformat

在线XML/JSON互相转换工具:
http://tools.3water.com/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.3water.com/code/jsoncodeformat

在线json压缩/转义工具:
http://tools.3water.com/code/json_yasuo_trans

C语言风格/HTML/CSS/json代码格式化美化工具:
http://tools.3water.com/code/ccode_html_css_json

希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php csv操作类代码
Dec 14 PHP
PHP游戏编程25个脚本代码
Feb 08 PHP
php在服务器执行exec命令失败的解决方法
Mar 03 PHP
PHP遍历数组的方法汇总
Apr 30 PHP
php根据日期或时间戳获取星座信息和生肖等信息
Oct 20 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
Dec 18 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
May 13 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
PHP7新特性foreach 修改示例介绍
Aug 26 PHP
如何离线执行php任务
Feb 21 PHP
php从数据库读取数据,并以json格式返回数据的方法
Aug 21 PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
Dec 09 #PHP
PHP 根据key 给二维数组分组
Dec 09 #PHP
Zend Framework入门教程之Zend_Registry组件用法详解
Dec 09 #PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 #PHP
Zend Framework过滤器Zend_Filter用法详解
Dec 09 #PHP
Zend Framework实现自定义过滤器的方法
Dec 09 #PHP
Zend Framework校验器Zend_Validate用法详解
Dec 09 #PHP
You might like
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
php 什么是PEAR?(第三篇)
2009/03/19 PHP
php 生成唯一id的几种解决方法
2013/03/08 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
文字垂直滚动之javascript代码
2015/07/29 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
JavaScript实现99乘法表及隔行变色实例代码
2016/02/24 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
详解React 条件渲染
2020/07/08 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
Python分析学校四六级过关情况
2017/11/22 Python
django实现用户登陆功能详解
2017/12/11 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
python 如何调用 dubbo 接口
2020/09/24 Python
tensorflow与numpy的版本兼容性问题的解决
2021/01/08 Python
HTML5未来发展趋势
2016/02/01 HTML / CSS
学雷锋树新风演讲稿
2014/05/10 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
幼儿园体操比赛口号
2015/12/25 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
Python实现日志实时监测的示例详解
2022/04/06 Python
MySQL GTID复制的具体使用
2022/05/20 MySQL