json_encode和json_decode陷阱
来源:互联网 发布:淘宝客推广产品找不到 编辑:程序博客网 时间:2024/04/29 13:51
写在前
我们知道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也可以,不过语法有点奇怪,并不像操作数组那么方便,看代码
好了,这些都是在使用过程遭遇到的一些问题,希望能够帮到与我一样遇到这些问题的童鞋,不对之处希望大力指正~
- json_encode和json_decode陷阱
- json_encode和json_decode
- json_encode 和 json_decode
- 简析json_decode和json_encode
- json_encode()和json_decode()
- php json_encode 和 json_decode
- php 关于json_encode/json_decode和json_encode/unserialize
- php之json_encode和json_decode
- php中json_decode()和json_encode()
- json_encode和json_decode的用法
- json_encode()和json_decode()的用法
- json_encode编码 和json_decode解码
- json_encode编码 和json_decode解码
- php中json_decode()和json_encode()的使用方法
- php中json_decode()和json_encode()的使用方法
- php中json_decode()和json_encode()的使用方法
- php中的json_encode和json_decode函数
- php中json_decode()和json_encode()的使用方法
- Log One(phpmyadmin中使用配置文件中定义的控制用户连接失败问题 :)
- Strchr()函数详解
- [Leetcode]Spiral Matrix
- Mysql学习笔记二, 表类型(存储引擎)的选择
- SSH登录原理
- json_encode和json_decode陷阱
- WCF 远程服务器返回了错误: NotFound
- 黑马程序员——Java基础IO流总结(三)
- Second Interview NJFH
- crossdomain.xml和clientaccesspolicy.xml
- 1045 access denied for user 'root'@'localhost'
- nyoj 擅长排列的小明 II 469 (枚举找规律) 水
- win10 uwp 通知Toast
- J2ee三种框架 比较