JSON定义法使用的轻便的数据交换形式。采用Ajax技术,使用JSON来交换数据,最近用了一下这种方式,真是不错,比以前使用XML格式方便多了。少去了服务器端使用jdom,dom4j等jar包创建XML数据的过程,在客户端也不再需要使用那极其难用的COM API来解析XML。
客户端使用javascript解析满足json格式要求的字符串,十分容易,只要使用eval函数就可以了。不过有个技巧,就是要在字符串两端加上括号。那么在服务器端,如何方便快捷的生成JSON 表示数据要求的字符串呢。好象有现成的jar包工具可供使用。但实际上这个工作是非常简单的。我自己写了一个简单的工具类,支持多种数据类型,支持JSON嵌套。很简单,相信大家一看就知道了。#t#
JSON(JavaScript Object Notation)是一种优美的JavaScript对象创建方法。JSON也是一种轻量级数据交换格式。JSON 表示数据非常易于人阅读与编写,同时利于机器解析与生成。JSON是在AJAX中代替XML交换数据的更佳方案。
猴子提示: JSON定义法类似于直接定义法,JSON定义法就是将直接定义法定义的函数与属性放到大括号中,并且去掉属性与函数签名的对象名,把等于号改为了冒号,每行后面改为逗号!
上面介绍了如何用 JSON 表示数据,接下来,我们还要解决如何在服务器端生成 JSON 格式的数据以便发送到客户端,以及客户端如何使用 JavaScript 处理 JSON 格式的数据。
JSON 表示数据代码如下:
- static String string2Json(String s) {
- StringBuilder sb = new StringBuilder(s.length()+20);
- sb.append('\"'); for (int i=0; i<s.length(); i++) {
- char c = s.charAt(i); switch (c) { case '\"':
- sb.append("\\\""); break; case '\\':
- sb.append("\\\\"); break; case '/':
- sb.append("\\/");
- break; case '\b': sb.append("\\b");
- break; case '\f': sb.append("\\f"); break;
- case '\n': sb.append("\\n"); break; case '\r':
- sb.append("\\r"); break; case '\t': sb.append("\\t");
- break; default: sb.append(c); } } sb.append('\"');
- return sb.toString(); }