色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

groovy 找不到 json

傅智翔2年前9瀏覽0評論

最近我在使用groovy編寫一個程序,遇到了一個奇怪的問題,就是無法找到j(luò)son。

def json = '{"name":"Tom","age":20}'
def jsonObj = new JsonSlurper().parseText(json)
//這段代碼會出錯
println jsonObj.name

在使用groovy自帶的JsonSlurper類進(jìn)行json解析時,我調(diào)用了parseText()方法將json字符串解析成json對象,但是在訪問json對象的屬性時,程序拋出了異常:Cannot get property 'name' on null object。

我非常疑惑,因為json對象明明已經(jīng)被成功解析出來了,為什么訪問不到其屬性呢?

經(jīng)過一番排查,我發(fā)現(xiàn)問題出在了json的解析代碼上。在解析json字符串時,我并沒有指定解析器要使用的類庫,于是groovy就默認(rèn)使用了JDK自帶的json類庫。

import java.util.*
import java.io.*
import org.json.*
import groovy.json.JsonSlurper
def json = '{"name":"Tom","age":20}'
def jsonObj = null
try {
jsonObj = new JSONObject(json)
} catch (JSONException e) {
jsonObj = new JsonSlurper().parseText(json)
}
//這段代碼會輸出"Tom"
println jsonObj.name

為了解決問題,我更換了解析庫,使用了第三方類庫JSON-Java,然后在解析json字符串時,根據(jù)情況選擇使用不同的解析器。如果解析器拋出了異常,就換用另一個解析器來解析。

經(jīng)過這樣的修改,問題終于得以解決。