电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> Javascript>>JSON是什么 数据结构、示例及与xml实例比较:

JSON是什么 数据结构、示例及与xml实例比较

来源:网络 | 2012-12-11 | (有1556人读过)

json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组2种结构,通过这两种结构可以表示各种复杂的结构。
比如:
{
  "data": {
    "csum": "32e5cdf9c5452488c92180d0b03b5b04335b3b09b9f057f2313e996b340ca7f425176d9dc89401c3fddc0f7cec6b96c65b9c287b76891b3f51e89871e21470dc39ef3098923bba74288fb65ba97b2b5ff7cc21460fe3d8a295c629c9d64de9e7fbcae2dc43f375151741d0ad82a42b9c3eaa6282f943ee378e3ef2e380a2c5d22dd0504b3448ddff470b346ef1dd55b0e4d98b51f3859ed74da81d43ff68d59d61def6c08ed98d9bdd8c18de89fce6907d301446cd8029ea7c6328d78cf892b4ed9e08cee74561cf27f1196ac13c2e6468ad6706b0c6b5bb78f2cc6d9d6ba9864167214f10020c4347cc9cc81b21006b54f91e8cfb9c8a6df850199e8794fa28ec1a4d78d4e9ed8208bd40836618eb3ab13d7f5840d31cfa0932768d599d1696f8b25c60a2389e28b75ed4af0d014255",
    "file_id": "8fb2cfad-67a9-49a8-b6b1-40014b57dbd7",
    "host": "hz.qqdisk.ftn.qq.com",
    "port": 80
  },
  "ret": 0


  1、对象:对象在js中表示为“{}”扩起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。 

  2、数组:数组在js中是中括号“[]”扩起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。 

  经过对象、数组2种结构就可以组合成复杂的数据结构了

JSON示例:
  按照最简单的形式,可以用下面这样的 JSON 表示"名称 / 值对": 
  { "firstName": "Brett" } 
  这个示例非常基本,而且实际上比等效的纯文本"名称 / 值对"占用更多的空间: 
  firstName=Brett 
  但是,当将多个"名称 / 值对"串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个"名称 / 值对"的 记录,比如: 
  { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" } 
  从语法方面来看,这与"名称 / 值对"相比并没有很大的优势,但是在这种情况下 JSON 更容易使用,而且可读性更好。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系。

JSON与XML的数据结构的比较:

 XML和JSON都使用结构化方法来标记数据,下面来做一个简单的比较。
  用XML表示中国部分省市数据如下:
  <?xml version="1.0" encoding="utf-8"?>
  <country>
  <name>中国</name>
  <province>
  <name>黑龙江</name>
  <cities>
  <city>哈尔滨</city>
  <city>大庆</city>
  </cities>
  </province>
  <province>
  <name>广东</name>
  <cities>
  <city>广州</city>
  <city>深圳</city>
  <city>珠海</city>
  </cities>
  </province>
  <province>
  <name>台湾</name>
  <cities>
  <city>台北</city>
  <city>高雄</city>
  </cities>
  </province>
  <province>
  <name>**</name>
  <cities>
  <city>乌鲁木齐</city>
  </cities>
  </province>
  </country>
  用JSON表示如下:
  {
  name:"中国",
  province:[
  {
  name:"黑龙江",
  cities:{
  city:["哈尔滨","大庆"]
  }
  },
  {
  name:"广东",
  cities:{
  city:["广州","深圳","珠海"]
  }
  },
  {
  name:"台湾",
  cities:{
  city:["台北","高雄"]
  }
  },
  {
  name:"**",
  cities:{
  city:["乌鲁木齐"]
  }
  }
  ]
  }
  编码的可读性,xml有明显的优势,毕竟人类的语言更贴近这样的说明结构。json读起来更像一个数据块,读起来就比较费解了。不过,我们读起来费解的语言,恰恰是适合机器阅读,所以通过json的索引.province[0].name就能够读取“黑龙江”这个值。
  编码的手写难度来说,xml还是舒服一些,好读当然就好写。不过写出来的字符JSON就明显少很多。去掉空白制表以及换行的话,JSON就是密密麻麻的有用数据,而xml却包含很多重复的标记字符。

Javascript热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2019 电脑爱好者 版权所有 备案号:鲁ICP备09059398号