JSON(javascript Object Notation):
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
Json的出现:
XML 对于许多应用场合非常好用,但在另外一些情况下则存在缺陷,使用不太理想:比如:XML 通常使用效果不太理想的领域之一是 Ajax 风格的 web 应用程序。Ajax 是用于构建交互式 web 应用程序的技术,此类应用程序通过使用对 web 服务器的带外轻型调用来代替整页回发,从而提供了更为迅捷的用户体验。这些异步调用通过 JavaScript 在客户端进行初始化,涉及设置数据格式、将其发送到 web 服务器,以及分析和处理返回的数据。大多数浏览器可以构建、发送和分析 XML,而 JavaScript Object Notation(或 JSON)提供了一种适用于 Ajax 风格的 web 应用程序的标准数据交换格式。
如何使一种标记语言轻松集成到HTML页面中以满足Ajax的要求?
利用所有主流浏览器中的一种通用组件——JavaScript引擎。XML需要使用DOM之类的机制来访问数据并将数据整合到布局之中,我们不再使用像XML这样的格式来交付Ajax更新,而是采用一种更为简单直观的方式,采用JavaScript引擎自然匹配的格式——也就是JSON。
Json的使用场合:
JSON 是一种基于文本的开放式数据交换格式。与 XML 一样,它便于读者阅读、独立于平台,并且具有广泛的可实现性。根据 JSON 标准设置格式的数据是轻型的,可由 JavaScript 实现轻而易举地进行分析,使之成为适用于 Ajax web 应用程序的理想数据交换格式。JSON 主要是一种数据格式,因此它不局限于 Ajax web 应用程序,在任何场合,只要应用程序需要将结构化信息作为文本进行交换或存储,即可使用它。
JSON与XML的重要特征区别:
JSON测试需要的jar包:
json-lib-2.3-jdk15.jar commons-collections.jar commons-lang.jar commons-logging.jar commons-beanutils.jar ezmorph-1.0.6.jar xom-1.1.jar |
和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。
表示一个对象:、对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。比如:有一个对象中有“name”和“type” 属性
} |
表示一个数组:数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
[“德胜”,“万象”] |
表示一个集合:对象集合
[ {name:”万象”,type:”软件”} ,{name:”中软” , |
数组 > JSON:
//定义数组
boolean[] booleanArray = new boolean[]{true, false, true};
//得到解析后的数组
JSONArray json1 = JSONArray.fromObject(booleanArray);
结果:
1:
Json/List集合的转换:
Shop包含name和property两个字段,ShopList包含Shop的列表。
public void testBean() {
List<Object> list = new ArrayList<Object>(); 结果:[{"name":"米老鼠","property":"男"},{"name":"唐老鸭","property":"X"}] |
JSON/MAP之间的转换:
//创建一个集合 添加值 结果为: |
String s="{'a':['a','b'],'int':1,'name':'json','bool':true}";
结果为:
String s = "{'shopList':[{name:'重量',property:'p1'},{name:'尺寸',property:'p2'},{name:'显卡类型',property:'p3'},{name:'硬盘容量',property:'p4'},{name:'处理器',property:'p5'},{name:'内存',property:'p6'},{name:'型号',property:'p7'},{name:'货号',property:'p8'},{name:'品牌',property:'p9'}]}"; 结果:p1->重量 p2->尺寸 p3->显卡类型 p4->硬盘容量 . |
Json与XML的转换
String s = "{name:'重量',property:'p1'}"; 结果: <o> <nametype="string">重量</name> <property type="string">p1</property> </o> |
JAVASCRIPT简单的处理JSON数据:
主要问题:如何在服务器端生成 JSON 格式的数据以便发送到客户端,以及客户端如何使用 JavaScript 处理 JSON 格式的数据。
1:在客户单处理JSON数据
做一个简单的JSON对象,使用JAVASCRIPT进行解析。
function handleJson() { |
假如从服务器床给客户端的JSON为:
{"name":"Michael","address": |
那么得出:
将其赋值给一个 JavaScript 变量,就可以立刻使用该变量并更新页面中的信息了。