Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29305496
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 系统运维

2009-11-14 11:07:41

JSON建构于两种结构:

  • “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
  • 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
我的理解:
   1、在PHP语文里面的键值对是非常多的$a = array("name"=>"zs");
这种键值对映射是非常容易理解的。在PHP里面也叫做关联数组。在Python理解为字典
{'':'',}在JAVA里面就是哈希数据结构保存的是键-值。
   2、即保存多个数据的时候就需要保存到数组里面去。或保存到类似于序列列表之类的数据类型里面去。
在Python里面就是元组、序列了。PHP里面就是数组JAVA的数据结构就多了什么集合、队列什么的。


对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

我的理解:JSON里面把这种关系理解 为对象其实如果懂面向对象的话可以比较好的理解就是类中的属性了。比如说

class JSON:

   string name="test"

   int age=12

即定义了其两个属性值进来。在JSON里面就是

{"name":"test","age":"12"}

我记得如果想要在JAVA里面传递一个对象的话是需要作序列化处理的。即实现序列化接口。这个等会看一下JSON是如何实现它的序列化的。因为比如说在AJAX里面服务器端要传递数据回来的时候是要作交换之用这个时候应该会有序列化操作了。


数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

值(value)可以是双引号括起来的字符串(string)、数值(number)、truefalsenull、对象(object)或者数组(array)。这些结构可以嵌套。

我的理解:数组可以理解为编程语文里面的容器。所谓容器可以这样来理解是用来装载其他东西的当然也可以是它自己了。

而且这种容器它不像JAVA里面必须要声明好只能保存为什么类型的数据。它是不固定数据格式的即你可以保存任何你想的数据。这个有点像PYTHON里面的序列。类型不固定的。

记住它的格式吧:

[value,value,value,..,]其中的value可以是对象、布尔数、整数、字符数等都可以。

哈哈可以看下图:


字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

字符串(string)与C或者Java的字符串非常相似。

数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。



OK。把JSON的一些基本的概念都讲完了。现在来整理一下各个语文是如何去支持JSON的。

阅读(910) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~