1. 学习目的
1.掌握并且能使用Json数据格式进行通信交互
2.理解Json数据格式和serialize序列化,XML以及数组的区别
2. Json起源
21世纪初, Douglas Crockford寻找一简便的数据交互格式,能够在服务器之间交换数据.当时通用的数据交换语言是XML,但是Douglas Crockford觉得XML的生成和解析都太麻烦,所以他提出了一种简化格式,也就是Json.
Json的规格非常简单,只用一个页面几百个字就能说清楚,而且Douglas Crockford声称这个规格永远不必升级,因为该规定的都规定了.
分享:
首先,不管做什么开发,比如说c++ ,Java,php 等等,他们都离不开三种数据类型,此处的数据类型不是指的是我们程序中数据类型,不是string, int之类的,它是一种统称总结起来的类型,这三种类型可以涵盖大部分的语言.
第一种数据类型:标量(scalar),也就是一个单数的字符串(string)或者数字(numbers),比如”北京”这个单独的词.
第二种数据类型:序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫数组(array)或者列表(list),比如”北京,上海”.
第三种数据类型:映射(mapping),也就是一个名/值对(name/value),即数据有一个名称,还有一个相对应的值,这又称作散列(hash)或者字典(dictionary),比如”首都: 北京”
3. 什么是Json
Json就是JavaScript object notation (JavaScript对象表示),它是一种轻量级的数据交换格式.
以下的语句即Json
{“name”:”Eric”,”age”:24}
{“first”:{“name”:”Eric”, ”age”:24},”second”:{“name”:”yuanminghe”,”age”:24}}
4. Json的基本语法
Json的四个基本原则 //遵守一种约束,学习一门语言或者一门技能会事半功倍
(1) 并列的数据之间用逗号(“,”)分隔.
(2) 映射用冒号(“:”)表示.
(3) 并列数据的集合(数组)用方括号(“[]”)表示.
(4) 映射的集合(对象)用大括号(“{}”)表示
简单记法: 如果是复数就用[{}],如果是单数就用{}
举例:
“北京市的面积为16800平方公里,常驻人口1600万人.上海市的面积为6400平方公里,常住人口1800万”
转换为json格式之后:
[
Key value Key value Key value
{“城市”:”北京”,”面积”:16800,”人口”:1600}
{“城市”:”上海”,”面积”:6400,”人口”:1800}
]
5. Json的优点和缺点
优点:
1.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小.
2.支持多种语言,包括ActionScript,C,C#,ColdFusion,Java,JavaScript.Perl.PHP.Python,Ruby等服务器端语言,便于服务器端的解析.
// 因为json这个数据格式在创造的时候,它就已经符合一种规范,相当于和C或者其他语言签好了合同,以后你们的json格式也要用这种,所以说json跨平台的东西.
缺点:
// 一个好的东西,不会哪个方面都是好的.一个好的东西,也会有反面的东西.
1.要求字符集,必须是Unicode,受约束性强.//原因是,如果是非Unicode字符集,将会产生空或者乱码或者是我们不想得到的结果.
2.语法过于严谨,必须遵循json语法的四分原则. //但是也正是因为语法严谨,json才能是一个轻量级的框架,如果每个人都是一个样子,一个风格,将会是一个非常糟糕的事情,.同时也不利用学习和深入理解.
6. 相提并论 XML
XML是标准通用标记语言(SGM)的子集,非常适合web传输. // 早期非常受欢迎,可以解析出树形的结构化数据,但是在传输的过程中第一是数据文档比较大, 第二个是读起来会比较费劲, 原因是xml中都是自己定义的节点,这一部分, 详细可另外查看文档. XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据. |
Json
JSON基于JavaScript programming language,standard ECMA-262 3rd Edition – Demeber 1999的一个子集 |
Serialize
Serialize是一种类似json的数据格式, 但是PHP的Serialize是将变量序列化, 返回一个具有变量类型和结构的字符串表达式. // 相当于json, 但是比json更复杂. |
Array()
基本数据类型,不能用于数据的传输和交互 原因是array是一种标准的基本的数据类型,它只能处理我们的逻辑和存储我们的数据在我们的缓存当中,array的结构相当于是一个key, 一个value或者一个默认的key或者一个默认的value, 此处的json, serialize, xml都可以通过array进行转换, 因为array是一个基础的数据类型. |
|