Java中处理JSON的工具包文档汉化
DK 于2010,02,04发表 | 5 评论 »
这两天项目中用到JSON作为前后台数据的传输格式于是就在www.json.org上面找到了这个JSON in Java的扩展包。
包中主要包含了13个类,用来进行对各种情况下json的处理。下面是简介:
-
o
- CDL,这个类主要提供了将用逗号(,)分割的文本转换为JSONArray和将JSONArray转换为以逗号(,)分割的文本等静态方法。
- Cookie,将网络浏览器的cookie转换为JSONObject并返回。
- CookieList,将网络浏览器的cookie列表字符串转换为JSONObject并返回。
- HTTP,将一个HTTP头信息转换为JSONObject并返回。
- HTTPTokener,HTTPTokener继承自JSONTokener,它提供了额为的方法用于HTTP头信息的分析。
- JSONArray,JSONArray一个有序的值序列。
- JSONML,提供将XML文本转换成JSONArray或者JSONObject,或将JSONArray或者JSONObject转换成XML文本等静态方法。
- JSONObject,是一个无序的键值对集合。
- JSONStringer,提供快捷方便的方法构造JSON文本。
- JSONTokener,接受一个源字符串,并从中提取字符和标记。
- JSONWriter,提供方便快捷的方法构造JSON文本。
- XML,提供将XML文本转换为JSONObject或将JSONObject转换为XML文本的静态方法。
- XMLTokener,继承自JSONTokener,提供额外的方法精选XML文本的解析。
o
o
o
o
o
o
o
o
o
o
o
o
我主要用到了两个类,一个是JSONArray,一个是JSONObject,主要用于对JSON文本的解析以及将解析出的内容读出来。
JSONArray类介绍:
一个 JSONArray 是一个有序的值序列。它的外部文本形式是包装在方括号中用逗号分隔的值的字符串。内部的形式是对象具有 get 和opt等方法用于根据索引访问相应的值,以及put方法添加或替换值。这些值可以是这些类型中的任何一种:Boolean、JSONArray、JSONObject、Number、String或者JSONObject.NULL 对象。
-
o
- 构造函数可以将一个 JSON 文本转换为 Java 对象。toString 方法将转换为 JSON 文本。
- get 方法返回一个可以被找到的值,如果找不到则引发异常。opt方法返回一个默认值,而不是引发一个的异常,因此可用于获取可选值的情况。
一般的 get() 和 opt() 方法返回一个对象,则可以强制转换或查询的类型。同样有强类型的get并opt为您进行类型检查和类型强制转换。 - toString 方法产生的文本严格符合 JSON 语法规则。更多原谅他们会接受文本的构造函数是:
一个的额外 (逗号)可能会出现在右边方括号的前面。 - 当有逗号(,)省略时,将插入空值。
- 字符串可能会引用单引号(’)。
- 字符串不会被引用在一下情况下,如果字符串没有用引号或单引号开始;如果它们不包含开始或结束空格;如果它们不包含所有这些字符: {} [] / \:,=; #;如果他们看起来不像数字;如果他们不是保留的字 true、 false 或 null。
- 值可以被分隔 分号(;),以及逗号(,)。
- 数字可能会有0x-(十六进制)前缀。
o
o
o
o
o
o
o
下面就是一个简单的dome:
JSONArray构造函数可以接受一个字符串的类型的参数,例如:
String jsonText="[{\"id\":\"a00001\",\"name\":\"DK\"},{\"id\":\"a00002\",\"name\":\"xiaobao\"}]"; JSONArray ja=new JSONArray(jsonText);
这样就能根据相应的字符串生成一个JSONArray对象,然后遍历对象中的元素,就能获取每个对象,根据每个对象的键值就可以获取相应的属性。for (int i = 0; i < ja.length(); i++) { otry { oJSONObject jo = (JSONObject) ja.get(i); oSystem.out.println(jo.get("id")); oSystem.out.println(jo.get("name")); oSystem.out.println(jo.get("infos")); oSystem.out.println(jo.get("finishDate")); oSystem.out.println("\r\n"); o//do something... o} ocatch (JSONException e) { oe.printStackTrace(); o} }
当然我这边用到的东西比较少,只用了这两个类,其他的类使用起来也是大同小异。
JSON官方网站 | 原文地址转载请注明原文出处《Java中处理JSON的工具包文档汉化》 如无特别声明,所有文章均遵守创作共用 署名-非商业-禁止演绎 3.0协议。
用JSON官方JAR包有一点不好就是太大了,感觉有些大材小用。里面东西包含的太多了。
我最近正在写一个自己的JSON解析器。
[回复]
@Mover, 我最近做一个项目的时候用到的,看了一下官方的,也就没自己写,等你写好了能否发给我看一下,我也学习一下:)
[回复]
@DK, 居然又开始整java了
[回复]
@西门, 偶尔偶尔而已~
没问题
[回复]