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 相关文章推荐
新闻分类录入、显示系统
Oct 09 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
Oct 12 PHP
新手学习PHP的一些基础知识分享
Jul 27 PHP
web目录下不应该存在多余的程序(安全考虑)
May 09 PHP
解析thinkphp中的M()与D()方法的区别
Jun 22 PHP
php判断字符串在另一个字符串位置的方法
Feb 27 PHP
thinkphp循环结构用法实例
Nov 24 PHP
PHP中$_SERVER使用说明
Jul 05 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
php使用ftp实现文件上传与下载功能
Jul 21 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 PHP
php输出反斜杠的实例方法
Sep 19 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
玛琪朵 Macchiato
2021/03/03 咖啡文化
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
php微信开发自定义菜单
2016/08/27 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
基于Jquery的温度计动画效果
2010/06/18 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
JQuery自适应窗口大小导航菜单附源码下载
2015/09/01 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
简单的js表格操作
2016/09/24 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
Python实现周期性抓取网页内容的方法
2015/11/04 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
.net软件工程师应聘上机试题
2015/03/10 面试题
经济管理专业毕业生自荐信范文
2014/01/02 职场文书
企业文化标语大全
2014/06/10 职场文书
安全责任书怎么写
2014/07/28 职场文书
党员作风建设自查报告
2014/10/23 职场文书
初中作文评语集锦
2014/12/25 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏