关于php中的json_encode()和json_decode()函数的一些说明


Posted in PHP onNovember 20, 2016

一,json语法( php中的json_decode($json)中的$json要符合json语法格式 )

① JSON可以表示三种类型的值

1,简单值。包括整型,字符串型,布尔值和null。例如:5,"hello world",true,null都是有效的JSON数据。其中JSON字符串必须使用双引号(单引号会导致语法错误)。

2,对象。如,{"name":"tony","age":15}。说明①要求属性必须用双引号(不加或者单引号都是错误的)②值可以是简单值(注意若值为字符串,必须用双引号,不能用单引号),也可以是复杂类型的值(对象或数组)。

3,数组。如,[25,true,"tony"]。说明:数组的值也可以是任意类型。

二,php定义对象字面量时,不支持直接书写,如{"a":"11","b":"22"}。这种书写方式在其他语言中被支持,在php中需要按如下方式定义:

$a = '{"a":"11","b":"22"}' ;【这是json字符串,不加外面的单引号则是json对象】

$b = json_decode($a);

这样$b就是对象字面量了。

三,上述三种数值类型经过json_encode($value)转化后,会输出json格式(此时类型为字符串),如"hello",{},[]。输出的结果可以在其他地方(javascrip,ios,java,php等等)被解析使用。

四,php中改进后的json_encode()和json_decode()函数,支持汉语(原生的不支持汉语)

注:php中不可直接改写原生函数,需要写在类里,作为类的一个方法

 

static function json_encode($input)
{
// 从 PHP 5.4.0 起, 增加了这个选项.
if (defined('JSON_UNESCAPED_UNICODE')) {
return json_encode($input, JSON_UNESCAPED_UNICODE);
}

if (is_string($input)) {
$text = $input;
$text = str_replace('\\', '\\\\', $text);
$text = str_replace(
array("\r", "\n", "\t", "\""),
array('\r', '\n', '\t', '\\"'),
$text);
return '"' . $text . '"';
} else if (is_array($input) || is_object($input)) {
$arr = array();
$is_obj = is_object($input) || (array_keys($input) !== range(0, count($input) - 1));
foreach ($input as $k => $v) {
if($v == null){
$v = 'null';
}
if ($is_obj) {
$arr[] = self::json_encode($k) . ':' . self::json_encode($v);
} else {
$arr[] = self::json_encode($v);
}
}

if ($is_obj) {
return '{' . join(',', $arr) . '}';
} else {
return '[' . join(',', $arr) . ']';
}
} else {
return $input . '';
}
}

以上这篇关于php中的json_encode()和json_decode()函数的一些说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php 批量替换html标签的实例代码
Nov 26 PHP
PHP中常用的输出函数总结
Sep 22 PHP
PHP实现设计模式中的抽象工厂模式详解
Oct 11 PHP
smarty模板引擎从配置文件中获取数据的方法
Jan 22 PHP
php+xml实现在线英文词典查询的方法
Jan 23 PHP
PHP实现链式操作的核心思想
Jun 23 PHP
Thinkphp和onethink实现微信支付插件
Apr 13 PHP
CI框架中类的自动加载问题分析
Nov 21 PHP
PHP批量删除jQuery操作
Jul 23 PHP
关于php支持的协议与封装协议总结(推荐)
Nov 17 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 PHP
swoole锁的机制代码实例讲解
Mar 04 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
Nov 20 #PHP
php运行报错Call to undefined function curl_init()的最新解决方法
Nov 20 #PHP
php中strtotime函数性能分析
Nov 20 #PHP
php的socket编程详解
Nov 20 #PHP
PHP内置加密函数详解
Nov 20 #PHP
php PDO异常处理详解
Nov 20 #PHP
php.ini中date.timezone设置详解
Nov 20 #PHP
You might like
基于php-fpm 参数的深入理解
2013/06/03 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
将php数组输出html表格的方法
2014/02/24 PHP
PHP获取windows登录用户名的方法
2014/06/24 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
Node.js中的事件驱动编程详解
2014/08/16 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
python进阶教程之词典、字典、dict
2014/08/29 Python
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
玩转python爬虫之cookie使用方法
2016/02/17 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
2019/06/18 Python
Django框架视图函数设计示例
2019/07/29 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
美国折扣网站:jClub
2017/08/07 全球购物
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
如何开发一个JQuery插件
2016/07/28 面试题
腾讯广告词
2014/03/19 职场文书
品牌推广活动策划方案
2014/08/19 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
利用Java连接Hadoop进行编程
2022/06/28 Java/Android