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
用缓存实现静态页面的测试
Dec 06 PHP
PHP session常见问题集锦及解决办法总结
Mar 18 PHP
PHP中date()日期函数有关参数整理
Jul 19 PHP
php empty()与isset()区别的详细介绍
Jun 17 PHP
修改apache配置文件去除thinkphp url中的index.php
Jan 17 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
Nov 04 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
Dec 27 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
php实现简单加入购物车功能
Mar 07 PHP
PHP实现文字写入图片功能
Feb 18 PHP
php 防护xss,PHP的防御XSS注入的终极解决方案
Apr 01 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
Ajax PHP 边学边练 之三 数据库
2009/11/26 PHP
PHP取进制余数函数代码
2012/01/19 PHP
PHP检测链接是否存在的代码实例分享
2016/05/06 PHP
PHP数组实例详解
2016/06/26 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
jquery的map与get方法详解
2013/11/04 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
深入分析node.js的异步API和其局限性
2016/09/05 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
整理关于Bootstrap表单的慕课笔记
2017/03/29 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
JS替换字符串中指定位置的字符(多种方法)
2020/05/28 Javascript
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
python实现树形打印目录结构
2018/03/29 Python
PyTorch预训练的实现
2019/09/18 Python
Python 列表的清空方式
2020/01/13 Python
python 字符串格式化的示例
2020/09/21 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
用css3实现当鼠标移进去时当前亮其他变灰效果
2014/04/08 HTML / CSS
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
如何提高JDBC的性能
2013/04/30 面试题
一名女生的自荐信
2013/12/08 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
机房搬迁方案
2014/05/01 职场文书
节能环保口号
2014/06/12 职场文书
企业年检委托书范本
2014/10/14 职场文书
拔河比赛新闻稿
2015/07/17 职场文书
辞职申请书范本
2019/05/20 职场文书
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers