Wednesday, August 25, 2010

JSON Library

JSON 是一种非常通用的数据存放格式。其基本的形式为 "key": "value",并且用 {} 引起来。多个 key 可以用 , 将其分开,另外还有 array 的概念,这一般是用 [] 括起来的相同格式的对象。关于格式进一步的信息可以在其官网获得。这种格式流行的一个主要原因是对各种语言的支持非常全面。这里简单的介绍一下官网上提供的 org.json.* 下面的几个对象。

最重要的当然是 JSONObject 对象,我们可以用常见的字符串创建一个 JSON 的对象,然后通过 get* 方法获得某些键对应的值,而 * 表示的正是在 Java 中的类型,比如 String 等。使用 has() 方法可以测试该对象是否有需要的 key,而 keys() 可以用于遍历一个 JSON 对象的所有 key。其 toString() 方法可以很容易将一个 JSON 对象转换成为文本存放到文件中。

对应的 JSONArray 自然是处理 JSON 中 array 类型的值了。

该库还提供了其他格式的文本,如 XML、CDL(用逗号分割的文本)、HTTP 头、cookie 等转换成为或者从 JSON 转换的能力。

该库在解析错误的时候会抛出 JSONException 异常。

下面是一个简单的 snippet:

import org.json.* ;

import java.util.Iterator ; 

try{
  JSONObject json = new JSONObject( str ) ;
  Iterator<String> iter = json.keys() ;
  while( iter.hasNext() ) {
    String key = iter.next() ; 
    System.out.print( key + ": " + json.getString( key ) ) ;
  }
} catch( JSONException e) {
  System.err.println( "JSON parsing error" ) ; 
}

No comments:

Post a Comment