PHP JSON 操作总结
由于JSON可以在很多种程序语言中使用,所以我们可以用来做小型数据中转,如:PHP输出JSON字符串供JavaScript使用等。在PHP中可以使用 json_decode() 由一串规范的字符串解析出 JSON对象,使用 json_encode() 由JSON 对象生成一串规范的字符串。
例:<?php
$json = '{"a":1, "b":2, "c":3, "d":4, "e":5 }';
var_dump(json_decode($json));
var_dump(json_decode($json,true));
输出:
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
输出:{"a":1,"b":2,"c":3,"d":4,"e":5}
1. json_decode(),字符转JSON,一般用在接收到Javascript 发送的数据时会用到。
<?php
$s='{"webname":"homehf","url":"www.homehf.com","contact":{"qq":"744348666","mail":"nieweihf@163.com","xx":"xxxxxxx"}}';
$web=json_decode($s);
echo '网站名称:'.$web->webname.'<br />网址:'.$web->url.'<br />联系方式:QQ-'.$web->contact->qq.' MAIL:'.$web->contact->mail;
?>
上面的例子中,我们首先定义了一个变量s,然后用json_decode()解析成JSON对象,之后可以按照JSON的方式去使用,从使用情况看,JSON和XML以及数组实现的功能类似,都可以存储一些相互之间存在关系的数据,但是个人觉得JSON更容易使用,且可以使用JSON和JavaScript实现数据共享。
2. json_encode(),JSON转字符,这个一般在AJAX 应用中,为了将JSON对象转化成字符串并输出给 Javascript 时会用到,而向数据库中存储时也会用到。
<?php
$s='{"webname":"homehf","url":"www.homehf.com","contact":{"qq":"744348666","mail":"nieweihf@163.com","xx":"xxxxxxx"}}';
$web=json_decode($s);
echo json_encode($web);
?>
二 .PHP JSON 转数组
<?php
$s='{"webname":"homehf","url":"www.homehf.com","qq":"744348666"}';
$web=json_decode($s); //将字符转成JSON
$arr=array();
foreach($web as $k=>$w) $arr[$k]=$w;
print_r($arr);
?>
上面的代码中,已经将一个JSON对象转成了一个数组,可是如果是嵌套的JSON,上面的代码显然无能为力了,那么我们写一个函数解决嵌套JSON,
<?php
$s='{"webname":"homehf","url":"www.homehf.com","contact":{"qq":"744348666","mail":"nieweihf@163.com","xx":"xxxxxxx"}}';
$web=json_decode($s);
$arr=json_to_array($web);
print_r($arr);
function json_to_array($web){
$arr=array();
foreach($web as $k=>$w){
if(is_object($w)) $arr[$k]=json_to_array($w); //判断类型是不是object
else $arr[$k]=$w;
}
return $arr;
}
?>
PHP JSON 操作总结的更多相关文章
- Json操作(DynamicJson)
Json的简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了 ...
- ASP.NET 里的 JSON操作
最近项目中需要用到 JSON操作,google了一下 找到了几个比较好的操作方法.... 一 .使用 mircosoft 提供的 .NET Framework 自带的 json操作方法 1. 使用Ja ...
- Newtonsoft.Json 操作 JSON 字符串
Newtonsoft.Json介绍 在做开发的时候,很多数据交换都是以json格式传输的.而使用Json的时候,我们很多时候会涉及到几个序列化对象的使用:DataContractJsonSeriali ...
- Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类
本文目录 1. 前沿 2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装 3.XmlHelper快速操作xml文档 4.Serializatio ...
- JavaScript对json操作小记
JSON是一种轻量级的数据交换格式,同时,JSON是 JavaScript 原生格式,因此我们可以直接处理它不需要依赖任何工具包或者插件.因此,好多后台都会选择返回给前端这种非常友好的数据格式. 引子 ...
- 微信小程序setData()方法的详解以及对数组/json操作
此篇文章是本人对setData方法的一些理解,是查阅文档和查找一些其他资料综述的,有所不足希望指正! 直接进入正题! 一.setData()方法: 1.参数接受一个对象,以key,value的形式表示 ...
- C#工具类:Json操作帮助类(转载)
原文转载自C#工具类:Json操作帮助类_IT技术小趣屋. Json序列化和反序列化在程序开发中时常会遇到,在C#中可以使用很多种方法实现对数据的Json序列化和反序列化,封装一个Json操作工具类来 ...
- 【转载】C#工具类:Json操作帮助类
Json序列化和反序列化在程序开发中时常会遇到,在C#中可以使用很多种方法实现对数据的Json序列化和反序列化,封装一个Json操作工具类来简化相应的操作,该工具类中包含以下功能:对象转JSON.数据 ...
- 【转】python 历险记(四)— python 中常用的 json 操作
[转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...
- python 历险记(四)— python 中常用的 json 操作
目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编码和解码? 常用的 json 操作有哪些? json 操作需要什么库? 如何 ...
随机推荐
- JMS概述
[1.面向消息的中间件]顾名思义,面向消息的中间件就是通过使用消息(而不是命令)将企业内的组件连接起来的系统.例如库存系统可能会与工资和会计系统进行通信,如果使用面向消息的中间件将他们连接在一起,就可 ...
- Oracle使用%rowtype变量存储一行数据
在Oracle中,%rowtype是用来存储一行数据的 语法: rowType_name table_name%rowtype rowType_name :变量名 table_name:指定的表名 具 ...
- HighCharts学习笔记
目录 xAxis自定义时间刻度的显示 xAxis自定义时间刻度 我们先来看下HighCharts图表的xAxis对象有哪些属性(红色标记重要属性): allowDecimals: Booleancat ...
- plateform_driver_register和plateform_device_register区别
设备与驱动的两种绑定方式:在设备注册时进行绑定及在驱动注册时进行绑定. 以一个USB设备为例,有两种情形: (1)先插上USB设备并挂到总线中,然后在安装USB驱动程序过程中从总线上遍历各个设备,看驱 ...
- [css]兼容性
div +input 输入框 , 在微信中 有问题 块级元素 行内元素
- 【iis错误码】IIS 服务 这些年遇到的错误码
II 发生错误,客户端似乎有问题.例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息. 400 - 错误的请求. 401 - 访问被拒绝. -- 暴力添加everyone用户, i ...
- 如何导入ShareSDK的sample
由于项目需要,最近需要做10几个平台的分享,如果自己去集成,浪费很多时间,而且还很难成功.最后发现Sharesdk,可以满足项目需求. 首先,需要到他们的官网http://sharesdk.cn/下载 ...
- div+css布局细节问题
cursor: pointer;在chrome里支持,hand不支持
- ASP.NET Web – AJAX 回送
使用UpdatePanel时要一起使用的控件是ScriptManager.ScriptManager类加载了包含几个功能的JavaScript函数.也可以使用这个类加载自己定制脚本.ScriptMan ...
- LintCode-Compare Strings
Compare two strings A and B, determine whether A contains all of the characters in B. The characters ...