Java中处理JSON的工具包文档汉化

这两天项目中用到JSON作为前后台数据的传输格式于是就在www.json.org上面找到了这个JSON in Java的扩展包

包中主要包含了13个类,用来进行对各种情况下json的处理。下面是简介

    o

  1. CDL,这个类主要提供了将用逗号(,)分割的文本转换为JSONArray和将JSONArray转换为以逗号(,)分割的文本等静态方法。
  2. o

  3. Cookie,将网络浏览器的cookie转换为JSONObject并返回。
  4. o

  5. CookieList,将网络浏览器的cookie列表字符串转换为JSONObject并返回。
  6. o

  7. HTTP,将一个HTTP头信息转换为JSONObject并返回。
  8. o

  9. HTTPTokener,HTTPTokener继承自JSONTokener,它提供了额为的方法用于HTTP头信息的分析。
  10. o

  11. JSONArray,JSONArray一个有序的值序列。
  12. o

  13. JSONML,提供将XML文本转换成JSONArray或者JSONObject,或将JSONArray或者JSONObject转换成XML文本等静态方法。
  14. o

  15. JSONObject,是一个无序的键值对集合。
  16. o

  17. JSONStringer,提供快捷方便的方法构造JSON文本。
  18. o

  19. JSONTokener,接受一个源字符串,并从中提取字符和标记。
  20. o

  21. JSONWriter,提供方便快捷的方法构造JSON文本。
  22. o

  23. XML,提供将XML文本转换为JSONObject或将JSONObject转换为XML文本的静态方法。
  24. o

  25. XMLTokener,继承自JSONTokener,提供额外的方法精选XML文本的解析。

我主要用到了两个类,一个是JSONArray,一个是JSONObject,主要用于对JSON文本的解析以及将解析出的内容读出来。

JSONArray类介绍:

一个 JSONArray 是一个有序的值序列。它的外部文本形式是包装在方括号中用逗号分隔的值的字符串。内部的形式是对象具有 get 和opt等方法用于根据索引访问相应的值,以及put方法添加或替换值。这些值可以是这些类型中的任何一种:Boolean、JSONArray、JSONObject、Number、String或者JSONObject.NULL 对象。

    o

  1. 构造函数可以将一个 JSON 文本转换为 Java 对象。toString 方法将转换为 JSON 文本。
  2. o

  3. get 方法返回一个可以被找到的值,如果找不到则引发异常。opt方法返回一个默认值,而不是引发一个的异常,因此可用于获取可选值的情况。
    一般的 get() 和 opt() 方法返回一个对象,则可以强制转换或查询的类型。同样有强类型的get并opt为您进行类型检查和类型强制转换。
  4. o

  5. toString 方法产生的文本严格符合 JSON 语法规则。更多原谅他们会接受文本的构造函数是:
    一个的额外 (逗号)可能会出现在右边方括号的前面。
  6. o

  7. 当有逗号(,)省略时,将插入空值。
  8. o

  9. 字符串可能会引用单引号(’)。
  10. o

  11. 字符串不会被引用在一下情况下,如果字符串没有用引号或单引号开始;如果它们不包含开始或结束空格;如果它们不包含所有这些字符: {} [] / \:,=; #;如果他们看起来不像数字;如果他们不是保留的字 true、 false 或 null。
  12. o

  13. 值可以被分隔 分号(;),以及逗号(,)。
  14. o

  15. 数字可能会有0x-(十六进制)前缀。

下面就是一个简单的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协议。

5条回复 发表于 “Java中处理JSON的工具包文档汉化”上

  1. Mover says:

    用JSON官方JAR包有一点不好就是太大了,感觉有些大材小用。里面东西包含的太多了。
    我最近正在写一个自己的JSON解析器。

    [回复]

    DK 说:

    @Mover, 我最近做一个项目的时候用到的,看了一下官方的,也就没自己写,等你写好了能否发给我看一下,我也学习一下:)

    [回复]

    西门 说:

    @DK, 居然又开始整java了

    [回复]

    DK 说:

    @西门, 偶尔偶尔而已~

我要评论