JSON详解
来源:互联网 发布:linux搭建telnet服务器 编辑:程序博客网 时间:2024/06/11 02:58
JSON详解
导读:读到Json(JavaScript object natation(对象标记))我们首先想到的是她的用处,她的主要用处是数据交互。
什么是数据交互?
数据的传输与回应。
Json和xml、html都可以用来传输数据信息。她们有什么不同和相同的特点呢?
然后我们会根据她经常出没的地方加以总结,在Ajax中她的主要作用是数据的传输,在Android中的作用是什么呢?她们的区别和相同点是什么呢?
Ajax眼中的Json:
l 一种轻量级的数据交换格式
l 和XML一样,基于纯文本的数据格式,它被存储在 responseText 属性中
l 可以表达String、Number、Boolean、数组、甚至对象等数据
l 适合于服务器与JavaScript客户端的交互
l JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
l JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。
规则如下:
1) 映射用冒号(“:”)表示。名称:值
2) 并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2
3) 映射的集合(对象)用大括号(“{}”)表示。{名称1:值1,名称2:值2}
4) 并列数据的集合(数组)用方括号(“[]”)表示。
[
{名称1:值,名称2:值2},
{名称1:值,名称2:值2}
]
5 元素值可具有的类型:string, number, object, array, true, false, null
6
l 为了读取存储在 responseText 属性中的 JSON 数据,需要根据 JavaScript 的 eval 语句。
函数 eval 会把一个字符串当作它的参数。然后这个字符串会被当作 JavaScript 代码来执行。因为 JSON 的字符串就是由 JavaScript 代码构成的,所以它本身是可执行的
JSON文本格式数据如何解析成对象
比如
var s= "{'name':'张三','age':20}";
可使用JavaScript的eval()函数来解决。
var obj =eval("(" + s + ")");
alert(obj.name);
l 优点:
l 作为一种数据传输格式,JSON 与 XML 很相似,但是它更加灵巧。
l JSON 不需要从服务器端发送含有特定内容类型的首部信息。
l 缺点:
l 语法过于严谨
l 代码不易读
l eval 函数存在风险
Android眼中的Json:
l JSON是以key/value的形式存在的,key是Strng类型的,value的类型可以是一个数组,可以是一个字符串,可以是一个数值,也可以是一个布尔值,甚至可以是一个JSON对象.
在Android中解析JSON字符串[{"name":"Michael","age":20},{"name":"Mike","age":21}]
先分析一下这个JSON字符串的结构:一个JSONArray里面有两个JSONObject
再分析一下JsonReader解析这个JSON字符串的流程:
遇到【[】,开始解析数组(reader.beginArray())
遇到【{】,开始解析对象(reader.beginObject())
遇到【"】,开始解析第一个键值对
遇到【"】,开始解析第二个键值对
遇到【}】,结束解析对象(reader.endObject())
遇到【{】,开始解析对象(reader.beginObject())
遇到【"】,开始解析第一个键值对
遇到【"】,开始解析第二个键值对
遇到【}】,结束解析对象(reader.endObject())
遇到【]】,结束解析数组(reader.endArray())
使用URL封装路径,打开一个HttpURLConnection
设置头信息之后获取相应码,从输入流中获取数据
将数据转为String,封装成JSONArray对象
遍历JSONArray对象,调用获取其中的JSONObject
再从JSONObject中获取每个字段的信息
我眼中的Json:
不论是在Ajax还是在Android中Json都是用来传输交换数据用的,作为一种数据传输格式,她的作用很明显,就是用来传输数据。
在Ajax中是基于纯文本的数据格式,她可以看做一个map<key,value>数组,你把数据(信息)存放到这个map<key,value>中,当你需要调用其中的数据时你可以通过getkey这个方法得到其中的value的值;
在Android中她的作用也是数据传输交换,她把数据封装成一个对象,等到她要解析的时候,她再遍历她封装好的对象,调用其中的解析方法,获取每个字段信息。
最后,得出JSON在AJAX和Android中的作用都是一样的,都是用啦传输数据交换用的,只不过是调用的方法有所不同……
- JSON 详解
- JSON详解
- JSON详解
- JSON详解
- JSON详解
- JSON详解
- json 详解
- json详解
- JSON详解
- JSON详解
- JSON详解
- json详解
- JSON详解
- JSON详解
- JSON详解
- JSON详解
- json详解
- Json详解
- 一种注册表沙箱的思路、实现——Hook Nt函数
- 在redhat企业版5.8上装oracle 10g --笔记
- SQL语言基础二
- 有oracle特色的sql语句整理【第一季】
- HP服务器OA访问故障的低级错误
- JSON详解
- Fedora15在线升级到Fedora 16
- 对oracle日常管理的几点建议
- 基于日志却采用三种方法来区别增量检查点和完全检查点
- oracle体系结构学习笔记《一》
- DBA和老板签合同的参数:fast_start_mttr_target
- 理解委托的两类必要方法
- 《深入计算机系统》(第十章)
- ubuntu samba安装