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学习笔记 (1) 环境配置与代码调试
Jun 19 PHP
php session安全问题分析
Jun 24 PHP
一个典型的PHP分页实例代码分享
Jul 28 PHP
php随机显示图片的简单示例
Feb 15 PHP
PHP生成等比缩略图类和自定义函数分享
Jun 25 PHP
PHP封装分页函数实现文本分页和数字分页
Oct 23 PHP
php强制下载文件函数
Aug 24 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
thinkPHP5.0框架独立配置与动态配置方法
Mar 17 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
PHP7 安装event扩展的实现方法
Oct 08 PHP
laravel 5.5 关闭token的3种实现方式
Oct 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
玛琪朵 Macchiato
2021/03/03 咖啡文化
PHP面向对象分析设计的经验原则
2008/09/20 PHP
PHP strncasecmp字符串比较的小技巧
2011/01/04 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
json数据处理技巧(字段带空格、增加字段、排序等等)
2013/06/14 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
Angular实现跨域(搜索框的下拉列表)
2017/02/16 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
2017/10/19 jQuery
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
用Electron写个带界面的nodejs爬虫的实现方法
2019/01/29 NodeJs
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python 实现「食行生鲜」签到领积分功能
2018/09/26 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
ubuntu上安装python的实例方法
2019/09/30 Python
Python Celery异步任务队列使用方法解析
2020/08/10 Python
德国PC硬件网站:CASEKING
2016/10/20 全球购物
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
2012/09/08 面试题
制药工程专业个人求职自荐信
2014/01/25 职场文书
执行总经理岗位职责
2014/02/03 职场文书
汽车销售经理岗位职责
2014/06/09 职场文书
社区务虚会发言材料
2014/10/20 职场文书
三行辞职书范文
2015/02/26 职场文书
志愿者工作心得体会
2016/01/15 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android
PC版《死亡搁浅导剪版》现已发售 展开全新的探险
2022/04/03 其他游戏