JSON:JavaScript  Object  Notation,轻量级的文本数据交换格式 。是存储和交换文本信息的语法。类似XML。但  JSON比XML更小、更快,更易解析。JSON使用JavaScript语法来描述数据对象,但JSON仍然独立于语言和平台。JSON解析器和JSON库支持许多不同的编程语言。非常多的动态(PHP,JSP, .NET)编程语言都支持JSON。JSON文本格式在语法创建上与创建JavaScript对象的代码相同。由于这种相似性,无需解析器,JavaScript程序能够适应内建的eval()函数,用JSON数据来生成原生的JavaScript对象。下面是一个JSON对象。

    {"sites",[{"name":"菜鸟教程","url":"www.runoob.com"},
{"name":"百度","url":"www.baidu.com"},
{"name":"微博","url":"www.weibo.com"}
]}

  JSON与XML相同之处

  • JSON是纯文本
  • JSON具有"自我描述性"(可读)
  • JSON具有层级结构
  • JSON可通过JavaScript进行解析
  • JSON数据可使用AJAX进行传输

  JSON与XML不同之处

  • 没有结束标签
  • 结构更短
  • 读写的速度更快
  • 能够使用内建的JavaScript  eval()方法进行解析
  • 使用数组
  • 不使用保留字

  对于AJAX应用程序来说,JSON比XML更快更易使用:

  使用XML:

  •   读取XML文档
  • 使用XML  DOM 来循环遍历文档
  • 读取值并存储在变量中

  使用JSON

  •   读取JSON字符串
  • 用eval()处理JSON字符串

JSON语法规则

    JSON语法是JavaScript对象表示语法的子集。

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 大括号保存对象
  • 中括号保存数组

  JSON值可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true或false)
  • 数组(在中括号中),数组可包含多个对象,索引从0开始
  • 对象(在大括号中),可以包含多个名称/值对
  • null

  JSON文件的文件类型是".json",文本的MIME类型是"application/json"。

  JSON对象

    {"name":"菜鸟","alexa":10000,"site":null}

  JSON对象在大括号{}中书写,对象可以包含多个key/value(键/值)对。key必须是字符串,value可以是合法的JSON数据类型(字符串、数字、对象、数组、布尔值或null)。key和value使用冒号(:)分隔。每个key/value对使用逗号(,)分隔。创建JSON对象后就可以使用对象名+点号(.)来获取对象的值。也可以使用中括号[]来获取对象的值。

var   jsonobj , x ;
jsonobj = {"name":"菜鸟","alexa":10000,"site":null};
x = jsonobj.name ; // x = jsonobj["name"] 也能获得相同的结果

  可以用for-in来循环对象的属性:

        var  jsonobj = {"name":"菜鸟","alexa":10000,"site":null};
for( x in jsonobj ){
document.getElementById("demo").innerHTML += x +"<br>" ;
}
//循环对象属性时,使用中括号来访问属性的值 for( y in jsonobj ){
document.getElementById("demo").innerHTML += jsonobj[y] + "<br>" ;
}

   JSON对象可以是另一个JSON对象的某个属性的值,这就是嵌套JSON。修改JSON对象的值使用点号来操作。删除JSON对象的属性可以使用delete关键字。

学习JSON的更多相关文章

  1. iOS学习——JSON数据解析(十一)

    在之前的<iOS学习——xml数据解析(九)>介绍了xml数据解析,这一篇简单介绍一下Json数据解析.JSON 即 JavaScript Object Natation,它是一种轻量级的 ...

  2. ajax学习----json,前后端交互,ajax

    json <script> var obj = {"name": "xiaopo","age": 18,"gender ...

  3. android 学习JSON

    JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...

  4. SpringMVC学习--json

    简介 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便.比如:webservice接口,传输json数据. springmvc与json交互 @RequestB ...

  5. iOS学习—JSON数据解析

      关于在iOS平台上进行JSON解析,已经有很多第三方的开源项目,比如TouchJson,JSONKit,SBJon等,自从iOS5.0以后,苹果SDK推出了自带的JSON解决方案NSJSONSer ...

  6. 一步步学习JSON

    什么是Json json是JavaScript Object Notation(javascript对象表示法)的缩写,是一种轻量的数据格式,是基于javascript的一个子集.与XML一样,jso ...

  7. Unity 学习Json篇

    介绍 JSON是一个简单的,但功能强大的序列化数据格式.它定义了简单的类型,如布尔,数(int和float)和字符串,和几个数据结构:list和dictionnary.可以在http://JSON.o ...

  8. [Java学习] JSON工具学习记录--FastJSON

    最近做项目,总是与json打交道,在用了即可json工具后,个人认为fastJson最好用,很方便,API也清晰可见,所以记录下使用方法,给需要的人提供帮助.(部分摘抄自网络) 一.API入口 Fas ...

  9. Python学习---JSON补充内容[中文编码 + dumps解析]

    JSON补充内容[微信解决中文乱码,接上] import json # 英文显示 dic = {"hello": "world"} str = json.dum ...

  10. Python学习---JSON学习180130

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON是用字符串来表示Javascript对象: Json字符串就是js对象的一种表现形式(字符串的形式 ...

随机推荐

  1. UvaLive6442(思维、结论)

    结论是:按位置排序好以后,对于真正的答案,走法应该是:依次走向第0个等分点,第1个等分点……这样对于这种等分情况,是最优的调度. /* 先假设一个终点位置然后按位站好 这个位置不一定是最优所以要调 调 ...

  2. 二分查找 BestCoder Round #42 1002 Gunner II

    题目传送门 /* 题意:查询x的id,每次前排的树倒下 使用lower_bound ()查找高度,f[i]记录第一棵高度为x树的位置,查询后+1(因为有序) */ #include <cstdi ...

  3. Python: How to iterate list in reverse order

    #1 for index, val in enumerate(reversed(list)): print len(list) - index - 1, val #2 def reverse_enum ...

  4. POJ1150he Last Non-zero Digit(组合)

    链接 题意从尾部找第一个非0的数 这样就可以考虑下怎样会形成0  这个都知道 只有因子2和因子5相遇会形成0 那这样可以先把所有的2和5先抽出来,这样就保证了其它的数相乘就不会再出现0了 这样就可以转 ...

  5. 【前端】模拟微信上传图片(带预览,支持预览gif)

    一.Html <style type="text/css"> #previewDiv{width:50px;height:50px;overflow:hidden;po ...

  6. php中session实现机制

    一.默认机制,用磁盘文件来实现PHP会话.php.ini配置:session.save_handler = files 1.session_start() A. session_start()是ses ...

  7. HYSBZ 1086 王室联邦 (树的分块)

    题意:国王想把他的国家划分成若干个省.他的国家有n个城市,是一棵树,即n-1条边,编号为1..n.为了防止管理太过分散,每个省至少要有B个城市,为了能有效的管理,每个省最多只有3B个城市.每个省必须有 ...

  8. HTTP 200 OK和HTTP 304 Not modified的由来

    这两个字段都和HTTP协议的缓存控制相关. 浏览器缓存机制是通过HTTP协议Header里的Cache-Control(或Expires)和Last-Modified(或 Etag)等字段来实现. 这 ...

  9. 设计模式、SOLID原则:组件与联系

    组件原则 - SRP The Single Responsibility Principle 单一责任原则 当需要修改某个类的时候原因有且只有一个.换句话说就是让一个类只做一种类型的责任,当这个类需要 ...

  10. 【整理】iview Tree数据格式问题,无限递归树处理数据

    iview Tree数据格式问题,无限递归树处理数据 https://juejin.im/post/5b51a8a4e51d455d6825be20