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相关资料
Oct 09 PHP
15个小时----从修改程序到自己些程序
Oct 09 PHP
PHP的范围解析操作符(::)的含义分析说明
Jul 03 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
Sep 06 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
PHP进程同步代码实例
Feb 12 PHP
PHP扩展Memcache分布式部署方案
Dec 06 PHP
CI框架数据库查询之join用法分析
May 18 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 PHP
PHP自动生成缩略图函数的源码示例
Mar 18 PHP
php写入txt乱码的解决方法
Sep 17 PHP
PHP项目多语言配置平台实现过程解析
May 18 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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
在laravel中实现事务回滚的方法
2019/10/10 PHP
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
js、css、img等浏览器缓存问题的2种解决方案
2013/10/23 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
2015/09/09 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
Python基础教程之浅拷贝和深拷贝实例详解
2017/07/15 Python
python实现员工管理系统
2018/01/11 Python
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
Django实战之用户认证(用户登录与注销)
2018/07/16 Python
python中图像通道分离与合并实例
2020/01/17 Python
用python实现学生管理系统
2020/07/24 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
香港钟表珠宝首饰商城:OneMallTime网摩间
2016/10/14 全球购物
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
亿企通软件测试面试题
2012/04/10 面试题
公司活动邀请函
2014/01/24 职场文书
九年级英语教学反思
2014/01/31 职场文书
宾馆总经理岗位职责
2014/02/14 职场文书
低碳日宣传活动总结
2014/07/09 职场文书
学校食堂标语
2014/10/06 职场文书
监守自盗观后感
2015/06/10 职场文书
名人传读书笔记
2015/06/26 职场文书
酒店开业主持词
2015/07/02 职场文书
create-react-app开发常用配置教程
2022/06/25 Javascript