php操作JSON格式数据的实现代码


Posted in PHP onDecember 24, 2011

知识点:
1、JSON数据格式介绍
2、对数据编码成JSON格式
3、对JSON数据进行解码,并操作
JSON数据格式表示方式如下:

{ "programmers": [ 
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }, 

{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" }, 

{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" } 

], 

"authors": [ 

{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }, 

{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }, 

{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } 

], 

"musicians": [ 

{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }, 

{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } 

] }

用php将数据编码成JSON格式:
<?php 
//php中用数组表示JSON格式数据 
$arr = array( 
'firstname' => iconv('gb2312', 'utf-8', '非诚'), 
'lastname' => iconv('gb2312', 'utf-8', '勿扰'), 
'contact' => array( 
'email' =>'fcwr@3water.com', 
'website' =>'https://3water.com', 
) 
); 
//将数组编码成JSON数据格式 
$json_string = json_encode($arr); 
//JSON格式数据可直接输出 
echo $json_string; 
?>

需要指出的是,在非UTF-8编码下,中文字符将不可被encode,结果会出来空值,所以,如果你使用 gb2312编写PHP代码,那么就需要将包含中文的内容使用iconv或者mb转为UTF-8再进行json_encode。
输出:(JSON格式)
{"firstname":"\u975e\u8bda","lastname":"\u52ff\u6270","contact":{"email":"fcwr@3water.com","website":"http:\/\/3water.com"}}
用php对JSON数据进行解码并处理:
<?php 
//php中用数组表示JSON格式数据 
$arr = array( 
'firstname' => iconv('gb2312', 'utf-8', '非诚'), 
'lastname' => iconv('gb2312', 'utf-8', '勿扰'), 
'contact' => array( 
'email' =>'fcwr@3water.com', 
'website' =>'https://3water.com', 
) 
); 
//将数组编码成JSON数据格式 
$json_string = json_encode($arr); 
//将JSON格式数据进行解码,解码后不是JSON数据格式,不可用echo直接输出 
$obj = json_decode($json_string); 
//强制转化为数组格式 
$arr = (array) $obj; 
//按数组方式调用里面的数据 
echo iconv('utf-8','gb2312',$arr['firstname']); 
echo '</br>'; 
//输出数组结构 
print_r($arr); 
?>

输出:
非诚
Array ( [firstname] => ??璇? [lastname] => ?挎? [contact] => stdClass Object ( [email] => fcwr@3water.com [website] => https://3water.com ) )
PHP 相关文章推荐
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
Oct 31 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
May 29 PHP
php中判断文件空目录是否有读写权限的函数代码
Aug 07 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
Jun 05 PHP
web server使用php生成web页面的三种方法总结
Oct 28 PHP
PHP开启opcache提升代码性能
Apr 26 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
Apr 30 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
May 28 PHP
PHP的简单跳转提示的实现详解
Mar 14 PHP
php用户名的密码加密更安全的方法
Jun 21 PHP
php实现QQ小程序发送模板消息功能
Sep 18 PHP
解决laravel id非自增 模型取回为0 的问题
Oct 11 PHP
php文件怎么打开 如何执行php文件
Dec 21 #PHP
使用JSON实现数据的跨域传输的php代码
Dec 20 #PHP
php自动注册登录验证机制实现代码
Dec 20 #PHP
php4与php5的区别小结(配置异同)
Dec 20 #PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Dec 19 #PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 #PHP
PHP定时执行计划任务的多种方法小结
Dec 19 #PHP
You might like
php基础知识:类与对象(5) static
2006/12/13 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
PHP 万年历实现代码
2012/10/18 PHP
php获取301跳转URL简单实例
2013/12/16 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
php验证邮箱和ip地址最简单方法汇总
2015/10/30 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
实现51Map地图接口(示例代码)
2013/11/22 Javascript
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
web 屏蔽BackSpace键实例代码
2016/12/24 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
微信小程序实现canvas分享朋友圈海报
2020/06/21 Javascript
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
解决Python中报错TypeError: must be str, not bytes问题
2020/04/07 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
总经理助理职责
2014/02/04 职场文书
文体活动总结范文
2014/05/05 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书
详解Java实现数据结构之并查集
2021/06/23 Java/Android
Alexa停服!网站排名将何去何从?目前还没有替代品。
2022/04/15 杂记