学习JSON
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的更多相关文章
- iOS学习——JSON数据解析(十一)
在之前的<iOS学习——xml数据解析(九)>介绍了xml数据解析,这一篇简单介绍一下Json数据解析.JSON 即 JavaScript Object Natation,它是一种轻量级的 ...
- ajax学习----json,前后端交互,ajax
json <script> var obj = {"name": "xiaopo","age": 18,"gender ...
- android 学习JSON
JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...
- SpringMVC学习--json
简介 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便.比如:webservice接口,传输json数据. springmvc与json交互 @RequestB ...
- iOS学习—JSON数据解析
关于在iOS平台上进行JSON解析,已经有很多第三方的开源项目,比如TouchJson,JSONKit,SBJon等,自从iOS5.0以后,苹果SDK推出了自带的JSON解决方案NSJSONSer ...
- 一步步学习JSON
什么是Json json是JavaScript Object Notation(javascript对象表示法)的缩写,是一种轻量的数据格式,是基于javascript的一个子集.与XML一样,jso ...
- Unity 学习Json篇
介绍 JSON是一个简单的,但功能强大的序列化数据格式.它定义了简单的类型,如布尔,数(int和float)和字符串,和几个数据结构:list和dictionnary.可以在http://JSON.o ...
- [Java学习] JSON工具学习记录--FastJSON
最近做项目,总是与json打交道,在用了即可json工具后,个人认为fastJson最好用,很方便,API也清晰可见,所以记录下使用方法,给需要的人提供帮助.(部分摘抄自网络) 一.API入口 Fas ...
- Python学习---JSON补充内容[中文编码 + dumps解析]
JSON补充内容[微信解决中文乱码,接上] import json # 英文显示 dic = {"hello": "world"} str = json.dum ...
- Python学习---JSON学习180130
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON是用字符串来表示Javascript对象: Json字符串就是js对象的一种表现形式(字符串的形式 ...
随机推荐
- bzoj 4542 [Hnoi2016]大数 (坑)
题面 https://www.lydsy.com/JudgeOnline/problem.php?id=4542 题解 Code #include<bits/stdc++.h> using ...
- LCA+树状数组 POJ 2763 Housewife Wind
题目传送门 题意:两种操作,问u到v的距离,并且u走到了v:把第i条边距离改成w 分析:根据DFS访问顺序,将树处理成链状的,那么回边处理成负权值,那么LCA加上BIT能够知道u到v的距离,BIT存储 ...
- 浅谈Java中static作用--转
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static修饰的成员变量和成员方法独立于该类的任何 ...
- jmeter(十八)属性和变量
一.Jmeter中的属性: 1.JMeter属性统一定义在jmeter.properties文件中,我们可以在该文件中添加自定义的属性 2.JMeter属性在测试脚本的任何地方都是可见的(全局),通常 ...
- python正则表达式多次提取数据(一个规则提取多组数据)
import re ttt='"FileName":"陈雪凝 - <em>绿色<\/em>","AlbumID":& ...
- 166 Fraction to Recurring Decimal 分数到小数
给定两个整数,分别表示分数的分子和分母,返回字符串格式的小数.如果小数部分为循环小数,则将重复部分括在括号内.例如, 给出 分子 = 1, 分母 = 2,返回 "0.5". ...
- shutil模块详解2
1.shutil.make_archive() 实际上是调用了两个模块来实现压缩打包的功能. zipfile和tarfile两个模块,shutil的两个封装的模块. zip是压缩文件,文件内存会变小, ...
- The Performance Manifesto
Manifesto For Performance Testing And Engineering We choose to support others in their quest for bet ...
- Mac上面不能安装Homebrew
这个stackoverflow的答案解决了我的问题: http://stackoverflow.com/questions/18039029/mac-can-t-install-homebrew 问题 ...
- Angular和SAP C4C的事件处理队列
Angular 我们在Angular框架的代码里能看到一个名为processQueue的函数: 这个函数是通过$scope.$apply启动的: 核心代码位于一个for循环里,循环体是一个存储异步处理 ...