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 iconv 函数转gb2312的bug解决方法
Oct 11 PHP
PHP文章采集URL补全函数(FormatUrl)
Aug 02 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 PHP
浅析php学习的路线图
Jul 10 PHP
php开启openssl的方法
May 15 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
PHP如何实现跨域
May 30 PHP
PHP自定义函数获取URL中一级域名的方法
Aug 23 PHP
php文件类型MIME对照表(比较全)
Oct 07 PHP
php rsa 加密,解密,签名,验签详解
Dec 06 PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
Aug 21 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
世界上第一台立体声收音机
2021/03/01 无线电
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
Javascript优化技巧(文件瘦身篇)
2008/01/28 Javascript
基于jQuery的图片大小自动适应实现代码
2010/11/17 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
js获取指定日期前后的日期代码
2013/08/20 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
JS实现常见的查找、排序、去重算法示例
2018/05/21 Javascript
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
JS实现纵向轮播图(初级版)
2020/01/18 Javascript
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
总结用Pdb库调试Python的方式及常用的命令
2016/08/18 Python
深入理解Python中的内置常量
2017/05/20 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
Python爬虫框架scrapy实现的文件下载功能示例
2018/08/04 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
Python变量访问权限控制详解
2019/06/29 Python
html5 figure和figcaption的使用方法
2018/09/10 HTML / CSS
行政总经理岗位职责
2013/12/05 职场文书
饲料采购员岗位职责
2013/12/19 职场文书
师德学习感言
2014/01/31 职场文书
机电一体化求职信
2014/03/10 职场文书
服装采购员岗位职责
2014/03/15 职场文书
小学优秀班主任材料
2014/12/17 职场文书
2016年国培研修日志
2015/11/13 职场文书
python爬取新闻门户网站的示例
2021/04/25 Python
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android