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 中文处理技巧
Apr 25 PHP
PHP 开发环境配置(Zend Server安装)
Apr 28 PHP
PHP调用Webservice实例代码
Jul 29 PHP
php中获得视频时间总长度的另一种方法
Sep 15 PHP
PHP函数extension_loaded()用法实例
Jan 19 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
Aug 01 PHP
php表单习惯用的正则表达式
Oct 11 PHP
thinkphp中的多表关联查询的实例详解
Oct 12 PHP
PHP基于phpqrcode类生成二维码的方法详解
Mar 14 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 PHP
Laravel服务容器绑定的几种方法总结
Jun 14 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 无线电
建立文件交换功能的脚本(一)
2006/10/09 PHP
Drupal7中常用的数据库操作实例
2014/03/02 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
js 加载并解析XML字符串的代码
2009/12/13 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
实例详解jQuery结合GridView控件的使用方法
2016/01/04 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
微信小程序下拉刷新界面的实现
2017/09/28 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
vue中使用微信公众号js-sdk踩坑记录
2019/03/29 Javascript
vue实现多个echarts根据屏幕大小变化而变化实例
2020/07/19 Javascript
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
Python实现二维有序数组查找的方法
2016/04/27 Python
python中的字典使用分享
2016/07/31 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
对python 判断数字是否小于0的方法详解
2019/01/26 Python
Python常见数据类型转换操作示例
2019/05/08 Python
简单了解python的内存管理机制
2019/07/08 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
用HTML5中的Canvas结合公式绘制粒子运动的教程
2015/05/08 HTML / CSS
JAVA招聘远程笔试题
2015/07/23 面试题
大专生毕业的自我评价
2014/02/06 职场文书
土地转让协议书范本
2014/04/15 职场文书
小学六年级学生评语
2014/04/22 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS
React Fragment介绍与使用详解
2021/11/11 Javascript
Redis基本数据类型List常用操作命令
2022/06/01 Redis