java php serialize_PHP serialize JSON 解析
对于JSON(JavaScript Object Notation)大家应该不陌生,它是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
JSON建构于两种结构:
“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
PHP的serialize是将变量序列化,返回一个具有变量类型和结构的字符串表达式,
说起来两者都是以一种字符串的方式来体现一种数据结构,那它们之间有什么区别呢。
先从JSON说起,看一个简单的实例。
例一:
vartest={"Name":"Peter","Age":20};
document.write(test.Name+":"+test.Age);
显示结果:
Peter:20
变量test中{"Name":"Peter","Age":20}为一个有2个元素的对象(感觉就像PHP的数组):
Name为Peter,Age为20。
当然也可以变得复杂些。
例二:
vartest={"User":{"Name":"Peter","Age":20},"Company":"FORD"};
document.write(test.User.Name+":"+test.Company);
显示结果:
Peter: FORD
这个例子中User元素中包含了Name和Age。
如果要体现多个User,则需要使用数组,区别于对象的"{}",数组使用"[]"。
例三:
vartest=[
{"User":{"Name":"Peter","Age":20},"Company":"FORD"},
{"User":{"Name":"Li Ming","Age":20},"Company":"Benz"}
];
document.write(test[1].User.Name+":"+test[1].Company);//或者使用:document.write(test[1]["User"]["Name"] + ": " + test[1]["Company"]);
显示结果:
Li Ming: Benz
通过以上简单实例就能将一些复杂数据通过一个字符串来进行传递,再配合上Ajax的确是方便很多。
下面再来看看PHP的serialize函数的作用。
例四:
$arr=array('Peter'=>array('Country'=>'USA','Age'=>20),'Li Ming'=>array('Country'=>'CHINA','Age'=>21)
);$serialize_var=serialize($arr);echo$serialize_var;
显示结果:
a:2:{s:5:"Peter";a:2:{s:7:"Country";s:3:"USA";s:3:"Age";i:20;}s:7:"Li Ming";a:2:{s:7:"Country";s:5:"CHINA";s:3:"Age";i:21;}}
这个结果看上去比JSON要复杂一些,其实也很简单,它说明的就是一些数据类型和结构。
以a:2:{s:7:"Country";s:3:"USA";s:3:"Age";i:20;}为例:
a:2说明这是个有两个元素的数组(array),
s:7:"Country";s:3:"USA";为第一个元素,s:7说明这是有7个字符的字符串(string),
后面i:20;也应该猜得到是整数(integer)20。
再来看一下这个例子,
例五:
classtest
{var$var=0;functionadd(){echo$var+10;
}
}$unserialize_var=newtest;$serialize_var=serialize($unserialize_var);echo$serialize_var;$unserialize_var=null;$unserialize_var=unserialize($serialize_var);$unserialize_var->add();
显示结果:
O:4:"test":1:{s:3:"var";i:0;}10
从这个例子中可以看出来,serialize对数据的类型和结构都进行的保存,
unserialize后的变量仍然可以使用add()方法。
那么PHP和JSON有没有联系呢,熟悉PHP的朋友应该了解PHP5.2.0已经将JSON extension设置为默认组件,也就是说我们可以在PHP中进行JSON操作,其函数为json_encode和json_decode。
例六:
$arr=array('Name'=>'Peter','Age'=>20);$jsonencode=json_encode($arr);echo$jsonencode;
显示结果:
{"Name":"Peter","Age":20}
这个结果和例一中test值是一样的,通过json_encode将PHP中的变量转换为JSON字符出表达式。
再来看看json_decode的用法。
例七:
$var='{"Name":"Peter","Age":20}';$jsondecode=json_decode($var);print_r($jsondecode);
显示结果:
stdClassObject( [Name]=>Peter [Age]=>20)
这的确验证了,在JSON中{"Name":"Peter","Age":20}是一个对象,但是在PHP中也可以将其转为数组,在json_decode中将ASSOC参数设置为True即可。
例八:
$var='{"Name":"Peter","Age":20}';$jsondecode=json_decode($var,true);print_r($jsondecode);
显示结果:
Array( [Name]=>Peter [Age]=>20)
另,需要注意的是JSON是基于Unicode格式,所以要进行中文操作要将其转化为UTF-8格式。
通过上面这些例子相信大家对于JSON和PHP的serialize、json_encode都有了初步了解,
结合PHP、Javascript、JSON以及Ajax就可以完成强大的数据交互功能。
相关参考资料:
PHP JSON Functions: http://cn.php.net/manual/en/ref.json.php
JSON Introduction:http://www.json.org/json-zh.html网友实例: http://www.only4.cn/archives/95 http://www.openphp.cn/blog.php?blog_id=12
java php serialize_PHP serialize JSON 解析相关推荐
- java php serialize_PHP serialize 和 JSON 解析与区别
PHP serialize 和 JSON 解析与区别 对于JSON(JavaScript Object Notation)大家应该不陌生,它是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器 ...
- PHP serialize JSON 解析
对于JSON(JavaScript Object Notation)大家应该不陌生,它是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Program ...
- java jsonpath过滤_JSONPATH json解析工具
2.json-path 快速入门 一.json-path中的操作符 二.json-path中可以使用的函数 三.过滤操作符 3.maven依赖 com.jayway.jsonpath json-pat ...
- java中的json_JAVA中的四种JSON解析方式详解
JAVA中的四种JSON解析方式详解 我们在日常开发中少不了和JSON数据打交道,那么我们来看看JAVA中常用的JSON解析方式. 1.JSON官方 脱离框架使用 2.GSON 3.FastJSON ...
- JSON解析(详细)
1. 了解JSON 简介:JSON(JavaScript Object Notation),即JS对象简谱 , 是一种轻量级的数据交换格式. 进一步理解: JSON和JavaScript的关系:两者之 ...
- java json解码器_Jackson:我是最牛掰的 Java JSON 解析器(有点虚)
在当今的编程世界里,JSON 已经成为将信息从客户端传输到服务器端的首选协议,可以好不夸张的说,XML 就是那个被拍死在沙滩上的前浪. 很不幸的是,JDK 没有 JSON 库,不知道为什么不搞一下.L ...
- Java常用的几种JSON解析工具
一.Gson:Google开源的JSON解析库 1.添加依赖 <!--gson--> <dependency><groupId>com.google.code.gs ...
- Jackson:我是最牛掰的 Java JSON 解析器(有点虚)
在当今的编程世界里,JSON 已经成为将信息从客户端传输到服务器端的首选协议,可以好不夸张的说,XML 就是那个被拍死在沙滩上的前浪. 很不幸的是,JDK 没有 JSON 库,不知道为什么不搞一下.L ...
- Java下利用Jackson进行JSON解析和序列化
Java下利用Jackson进行JSON解析和序列化 转载于:https://www.cnblogs.com/jing1617/p/7009122.html
最新文章
- 平方变换载波同步 matlab,matlab源码-costas载波同步环.docx
- 【C# 复习总结】类、继承和接口
- Linux下shel脚本之批量修改文件扩展名
- DP:Sumsets(POJ 2229)
- Python除了人工智能,还能从事哪些工作?
- 还没使用过Web Worker,推荐一款开源工具Workerize,快速上手
- 开发者的福利,报名即可领取代金券,赢运动手环
- layui表格使用复选框批量删除_LayUI表格批量删除方法
- 推荐一个PPT挣钱路子,日赚800-1000元
- 如何下载谷歌浏览器官方最新离线安装包
- jmeter连接mysql并定义变量提供给后续接口使用
- iPhonexs文件连接服务器,iPhonexs黑屏了教你如何快速解决!
- 生活中的算法的实际举例_生活中的算法
- 使用SCCM管理Office ProPlus(二)--升级最到最新更新
- 计算机电源 自动关机,电脑自动关机是什么原因,小编教你怎么解决电脑自动关机...
- 30天自制操作系统第1天 - Hello World
- 洛谷1262 间谍网络 tarjan缩点
- 2012蓝桥杯C++本科 取球游戏
- 爱思服务器可以下小组件,iOS14 小组件添加/删除方法教程
- 实验3 SQL的复杂多表查询以及视图
热门文章
- 从 Beta-Binomial 共轭到 Dirichlet-Multinomial 共轭
- 面向对象——类设计(一)
- python如何使用本地数据库_使用Python在虚拟机上怎么连接本地数据库
- python必背100源代码-100行Python代码实现自动抢火车票(附源码)
- 0基础学python要多久-零基础python培训需要学多久?
- python-Python 函数
- Kaldi 语音识别基础教程
- 第I题-生理周期(简单解法跳着试)====人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,
- 超级计算机运行吃鸡,决赛圈的时候,如果两个人同时被手雷炸死该怎么办呢?...
- python数字保留两位_Python 鲜为人知的数值格式化