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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
Apr 12 PHP
PHP分页函数代码(简单实用型)
Dec 02 PHP
PHP里的中文变量说明
Jul 23 PHP
PHP如何利用P3P实现跨域
Aug 24 PHP
yii上传文件或图片实例
Apr 01 PHP
新浪微博OAuth认证和储存的主要过程详解
Mar 27 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
PHP中余数、取余的妙用
Jun 29 PHP
php实现数组中索引关联数据转换成json对象的方法
Jul 08 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
phpmyadmin在宝塔面板里进不去的解决方案
Jul 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
Protoss魔法科技
2020/03/14 星际争霸
MYSQL数据库初学者使用指南
2006/11/16 PHP
关于php mvc开发模式的感想
2011/06/28 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
JavaScript内核之基本概念
2011/10/21 Javascript
js实现最短的XML格式化工具实例
2015/03/12 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
2019/04/17 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
基于python实现聊天室程序
2018/07/27 Python
Python Django2.0集成Celery4.1教程
2019/11/19 Python
基于Django实现日志记录报错信息
2019/12/17 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
python中如何使用虚拟环境
2020/10/14 Python
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
C语言笔试题
2014/09/04 面试题
机关门卫岗位职责
2013/12/30 职场文书
高中军训广播稿
2014/01/14 职场文书
三年级数学教学反思
2014/01/31 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
企业整改报告范文
2014/11/08 职场文书
幼儿园中班教师个人工作总结
2015/02/06 职场文书
2015年社区计生工作总结
2015/04/21 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
详解Python自动化之文件自动化处理
2021/06/21 Python