json_encode和json_decode陷阱
2015-11-13 22:30
591 查看
写在前
我们知道WEB模式是“请求-响应”模式
客户端(浏览器等)请求数据或页面 -- 服务端接收请求并处理数据(数据库操作或响应缓存) -- 返回数据给客户端,客户端解析数据并展示给用户
这里涉及到常用的MVC设计模式
models( M ) ------ 数据持久层 ------ 负责与数据库打交道。
views( V ) ------ 展示层 ------ 用户看到的界面
controlllers( C ) ------ 控制层 ------ 也称业务逻辑层,负责用户交互和数据库之间的桥接
写view层数据接口的时候,有两种常用的方法。
第一种是通过form表单提交数据到后台,这里不讨论。
第二种是ajax,在处理一些异步交互的时候使用最为频繁。
我们常常使用ajax来绑定数据和url提交到后台(controllers),控制层获取到前台传送过来的数据,传递到model层对数据库进行操作或直接读取缓存,处理完毕的数据通常编码为json格式并返回给前台,前台解析json并动态更新到用户界面上,这里称为一个异步交互。
正文
这里我们着重探讨一下PHP处理json的json_encode和json_decode函数。
json_encode
先上代码
再看看输出的结果
大家可以发现一个很奇怪的问题发生了,当键值为0的时候按数组处理,其他键值则作为对象处理。那么如果还是想按对象编码该怎么做呢?
使用json_encode的第二个可选参数JSON_FORCE_OBJECT强转成对象
json_decode
一般我们习惯操作数组,那么可以使用json_decode第二个可选参数true,将返回array而不是object
如果一定要操作object也可以,不过语法有点奇怪,并不像操作数组那么方便,看代码
好了,这些都是在使用过程遭遇到的一些问题,希望能够帮到与我一样遇到这些问题的童鞋,不对之处希望大力指正~
我们知道WEB模式是“请求-响应”模式
客户端(浏览器等)请求数据或页面 -- 服务端接收请求并处理数据(数据库操作或响应缓存) -- 返回数据给客户端,客户端解析数据并展示给用户
这里涉及到常用的MVC设计模式
models( M ) ------ 数据持久层 ------ 负责与数据库打交道。
views( V ) ------ 展示层 ------ 用户看到的界面
controlllers( C ) ------ 控制层 ------ 也称业务逻辑层,负责用户交互和数据库之间的桥接
写view层数据接口的时候,有两种常用的方法。
第一种是通过form表单提交数据到后台,这里不讨论。
第二种是ajax,在处理一些异步交互的时候使用最为频繁。
我们常常使用ajax来绑定数据和url提交到后台(controllers),控制层获取到前台传送过来的数据,传递到model层对数据库进行操作或直接读取缓存,处理完毕的数据通常编码为json格式并返回给前台,前台解析json并动态更新到用户界面上,这里称为一个异步交互。
正文
这里我们着重探讨一下PHP处理json的json_encode和json_decode函数。
json_encode
先上代码
再看看输出的结果
大家可以发现一个很奇怪的问题发生了,当键值为0的时候按数组处理,其他键值则作为对象处理。那么如果还是想按对象编码该怎么做呢?
使用json_encode的第二个可选参数JSON_FORCE_OBJECT强转成对象
json_decode
一般我们习惯操作数组,那么可以使用json_decode第二个可选参数true,将返回array而不是object
如果一定要操作object也可以,不过语法有点奇怪,并不像操作数组那么方便,看代码
好了,这些都是在使用过程遭遇到的一些问题,希望能够帮到与我一样遇到这些问题的童鞋,不对之处希望大力指正~
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- XML 与 JSON 优劣对比
- Php Installing An Expansion
- VBA将excel数据表生成JSON文件
- newtonsoft.json解析天气数据出错解决方法
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- vbs 解析json jsonp的方法