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+MYSQL的文章管理系统(一)
Oct 09 PHP
PHP中Date获取时间不正确怎么办
Jun 05 PHP
php Rename 更改文件、文件夹名称
May 24 PHP
超小PHP小马小结(方便查找后门的朋友)
May 05 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
PHP实现ftp上传文件示例
Aug 21 PHP
php使用Jpgraph绘制饼状图的方法
Jun 10 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
Sep 30 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
PHP小程序支付功能完整版【基于thinkPHP】
Mar 26 PHP
浅析PHP7 的垃圾回收机制
Sep 06 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
第二节 对象模型 [2]
2006/10/09 PHP
将RTF格式的文件转成HTML并在网页中显示的代码
2006/10/09 PHP
用php将任何格式视频转为flv的代码
2009/09/03 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
基于jquery的动态创建表格的插件
2011/04/05 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
js实现图片缓慢放大缩小效果
2016/08/02 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
2020/09/21 Javascript
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
详解Python的Lambda函数与排序
2016/10/25 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
Python高阶函数、常用内置函数用法实例分析
2019/12/26 Python
使用Python将图片转正方形的两种方法实例代码详解
2020/04/29 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
Pygame框架实现飞机大战
2020/08/07 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
3.12植树节活动总结2014
2014/03/13 职场文书
陈欧广告词
2014/03/14 职场文书
文秘求职信范文
2014/04/10 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
六一儿童节新闻稿
2015/07/17 职场文书
2015双创工作总结
2015/07/24 职场文书
公司食堂管理制度
2015/08/05 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js