目前JAVA解析JSON的方式有很多種,json-lib啊,GJSON啊,等等都可以解析,但通常是將JSON轉換為對象或者是LIST或者是MAP,對於我們測試人員來說,其實我們並不需要里面的全部信息,一般情況下,我們只需檢查里面的某個具體的值即可,聽說JSONPATH可以做到,我沒仔細看過JSONPATH,但是,我們測試人員對於XPATH來說,應該是很熟悉了,於是乎,我利用XPATH的規則,寫了一個取得JSON值的小應用,但是現在只支持絕對路徑,下面來具體的介紹一下這個小應用的使用:
1.path的寫法:
json里,一般是list與map,map好說,有具體的key,但list只有index,於是,我設計這個path的時候,把list用*[index]來代替,至於map,在path里直接寫key就行,比如/*[1]/test, 這就是一個path,表示取一個list形式的json串里面第2個list元素,這個取出來的list元素是個map,取其中的key為test的value,比如如下的json:
[
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
如果想取出Sergei,則path的寫法為:/*[1]/firstName
2.jar包的調用:
JsonAction jsonAction = new JsonAction();
3.提供出來的api:
jsonAction.checkJsonString(json);//檢查json串是否合法
jsonAction.getPathValue(json, path);//核心方法,取得給定的path的值
jsonAction.isExistPath(json, path);//檢查path是否存在,或者說是否合法
4.jar包下載地址:(里面包含源碼)
http://files.cnblogs.com/files/zhangfei/json-zf-1.0.zip
歡迎試用,如發現任何問題,請隨時與我聯系,非常感謝!