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+oracle 分页类
Oct 09 PHP
PHP4实际应用经验篇(4)
Oct 09 PHP
PHP APC的安装与使用详解
Jun 13 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
Mar 13 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 PHP
php比较两个字符串长度的方法
Jul 13 PHP
PHP实现搜索相似图片
Sep 22 PHP
微信第三方登录(原生)demo【必看篇】
May 26 PHP
PHP静态延迟绑定和普通静态效率的对比
Oct 20 PHP
php使用curl伪造来源ip和refer的方法示例
May 08 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
php生成随机密码的几种方法
2011/01/17 PHP
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
php中通过DirectoryIterator删除整个目录的方法
2015/03/13 PHP
php实现异步数据调用的方法
2015/12/24 PHP
php头像上传预览实例代码
2017/05/02 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
Laravel框架Eloquent ORM修改数据操作示例
2019/12/03 PHP
AngularJS实现表单验证
2015/01/28 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
BootStrap中Datepicker控件带中文的js文件
2016/08/10 Javascript
基于JavaScript实现购物车功能
2017/02/07 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
Python中print和return的作用及区别解析
2019/05/05 Python
Python实现图片添加文字
2019/11/26 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
国际领先的在线时尚服装和配饰店:DressLily
2019/03/03 全球购物
见习期自我鉴定
2013/11/07 职场文书
会计专业自我评价
2014/02/12 职场文书
人力资源主管职责范本
2014/03/05 职场文书
公司晚会主持词
2014/03/22 职场文书
企业安全生产承诺书
2014/05/22 职场文书
如何签定毕业生就业协议书
2014/09/28 职场文书
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
看雷锋电影观后感
2015/06/10 职场文书
班级管理经验交流材料
2015/11/02 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL