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 MsSql server时遇到的中文编码问题
Jun 11 PHP
YII实现分页的方法
Jul 09 PHP
getimagesize获取图片尺寸实例
Nov 15 PHP
PHP中使用imagick生成PSD文件缩略图教程
Jan 26 PHP
PHP借助phpmailer发送邮件
May 11 PHP
Zend Framework教程之视图组件Zend_View用法详解
Mar 05 PHP
thinkPHP2.1自定义标签库的导入方法详解
Jul 20 PHP
ThinkPHP简单使用memcache缓存的方法
Nov 15 PHP
PHP面向对象程序设计组合模式与装饰模式详解
Dec 02 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
Feb 28 PHP
PHP用函数嵌入网站访问量计数器
Oct 27 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
Apr 16 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
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
php常用Stream函数集介绍
2013/06/24 PHP
php实现httpclient类示例
2014/04/08 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
img onload事件绑定各浏览器均可执行
2012/12/19 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
js监听input输入框值的实时变化实例
2017/01/26 Javascript
vue.js实现含搜索的多种复选框(附源码)
2017/03/23 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
Angular4学习笔记router的简单使用
2018/03/30 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
Python实现二叉堆
2016/02/03 Python
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
对Python 内建函数和保留字详解
2018/10/15 Python
Python进阶之迭代器与迭代器切片教程
2020/01/29 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
golang/python实现归并排序实例代码
2020/08/30 Python
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
css3边框_动力节点Java学院整理
2017/07/11 HTML / CSS
PHP面试题附答案
2015/11/28 面试题
大学军训感言600字
2014/02/25 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
学校三节实施方案
2014/06/09 职场文书
中学团支部工作总结
2015/08/13 职场文书
2016年六一儿童节开幕词
2016/03/04 职场文书
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android