Json的使用
来源:互联网 发布:java物流项目简历 编辑:程序博客网 时间:2024/05/22 06:59
一、什么是JSON
JSON:javascript对象表示法(JavaScript Object Notation)。
JSON是轻量级的文本数据交换格式。
JSON独立于语言。(JSON使用javascript语法来描述数据对象,但是JSON仍然独立于语言和平台。JSON解析器和JSON库智齿许多不同的编程语言)
JSON具有自我描述性,更易理解。
JSON比XML更小、更快、更易解析。
二、JSON转换为javascript对象
JSON文本格式在语法上与创建的javascript对象的代码相同。
由于这种特性,无需解析器,javascript程序能够使用内建的eval()函数,,用JSON来生成原升javascript对象。
- eval()函数:可计算某个字符串,并执行其中的javascript代码
三、JSON特点
类似XML
- JSON是纯文本
- JSON具有自我描述性(人类可读)
- JSON具有层级结构(值中存在值)
- JSON可通过javascript进行解析
- JSON数据可使用AJAX进行传输
相比XML的不同之处
- 没有结束标签
- 更短
- 读写的速度更快
- 能够使用内建的javascript eval()方法进行解析
- 使用数组
- 不使用保留字
四、为什么使用JSON
对于使用AJAX应用程序来说,JSON比XML更快更易使用:
使用XML
- 读取XML文档
- 使用XML DOM来循环遍历文档
- 读取值并存储在变量中
使用JSON
- 读取JSON字符串
- 用eval()处理JSON字符串
五、JSON语法
JSON语法是javascript语法的子集。
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON名称/值对
JSON数据的书写格式是:名称/值对。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
"firstName" : "John"
JSON值
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true或false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
JSON对象
JSON对象在花括号中书写:
对象可以包含多个名称/值对:
{ "firstName":"John" , "lastName":"Doe" }
JSON对象的两个方法:stringify()和parse()。这两个方法分别用于把javascript对象序列化为JSON字符串和把JSON字符串解析为原生javascript值。
- stringify()
var book = { title:"Professional", authors:["Nicholas C. Zakas"], edition:3, year:2011 }; var jsonText = JSON.stringify(book);
这个例子使用JSON.stringify()把一个javascript对象序列化为一个JSON字符串,然后将它保存在变量jsonText中。默认情况下,JSON.stringify()输出的JSON字符串不包含任何空格字符或缩进,因此保存在jsonText中的字符串为:
{"title":"Professional","authors":["Nicholas C. Zakas"],"edition":3,"year":2011}在序列化javascript对象时,所有函数及原型成员都会被有意忽略,不体现在结果中。此外,值为undefined的任何属性也都会被跳过。结果中最终都是值为有效JSON数据类型的实例属性。
- prase()
var bookCopy = JSON.parse(jsonText);如果传给JSON.prase()的字符串不是有效的JSON,该方法会抛出错误
JSON数组
JSON数组在方括号中书写
数组可以包含多个对象:
{"employees": [{ "firstName":"John" , "lastName":"Doe" },{ "firstName":"Anna" , "lastName":"Smith" },{ "firstName":"Peter" , "lastName":"Jones" }]}
在上面的代码中,对象"employees"是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录
JSON使用javascript语法
因为JSON使用javascript语法,所以无需额外的软件就能处理javascript中的JSON
例子
var employees = [{ "firstName":"Bill" , "lastName":"Gates" },{ "firstName":"George" , "lastName":"Bush" },{ "firstName":"Thomas" , "lastName": "Carter" }];可以像这样访问javascript对象数组中的第一项
employees[0].lastName;
JSON文件
- JSON文件的类型是“.json”
- JSON文本的MIME类型是“application/json”
六、JSON使用
把JSON文本转换为javascript对象
JSON最常见的用法之一,是从web服务器上读取JSON数据(作为文件或作为HttpRequest),将JSON数据转换为javascript对象,然后在网页中使用该数据。
for in遍历JSON
获取对象属性的语法:
- 1.obj.attr
- 2.obj["attr"]
for in遍历JSON的时候
- 1.for(attr in JSON)中的attr是获取到的JSON中属性的名字,是个字符串
- 2.json[attr]获取到的是属性的值,该属性的值的数据类型,与JSON中该属性的值的数据类型一致。
var json = { "lrc1":{"time": "00:53.68", "lrc": "一起醉一回"}, "lrc2":{"time": "00:56.68", "lrc": "男人为什么不回家"}, "lrc3":{"time": "00:58.86","lrc": "只因家里那个她"}, "lrc4":{"time": "01:01.19", "lrc": "独自一人闯天涯"}, "lrc5":{"time": "01:03.33", "lrc": "天不怕地不怕"}, "lrc6":{"time": "01:05.65","lrc": "男人他一肩挑霜华"}, "lrc7":{"time": "01:07.84", "lrc": "只因压力如山大"}, "lrc8":{"time": "01:10.22", "lrc": "你负责贤惠美如花"}, "lrc9":{"time": "01:12.38","lrc": "我就负责赚钱养家"} }
for(attr in json){ var obj = json1[attr]; document.write(obj.time + " " + obj.lrc + "<br>") }
- json-lib的使用
- Json的使用
- Json的使用
- JSON的使用
- json.net的使用
- 使用JSON的方法
- JSON-Lib的使用
- json的使用
- Json的使用
- 使用JSON的方法
- json的简单使用
- iphone json的使用
- Json的使用
- 使用JSON的方法
- json的使用
- json的使用简介
- JSON的使用
- json的基本使用
- 用css写个三角形
- 使用maven命令启动tomcat7
- 递归
- 设计模式:工厂模式
- 设计模式之建造者模式
- Json的使用
- Jira6.3.6 Installation
- 设置字体
- 二叉搜索树的后序遍历序列
- POJ 2236
- HashMap详解
- Unity相机视野的缩放,旋转及跟随
- HTML基础知识点总结
- JZOJ 4.1 B组 删数