[英]Groovy - JsonSlurper Parsing JSON file
我有一個類似於下面結構的JSON文檔,我試圖在Groovy中解析它。 基本上每個學校(學校信息),我想抓住SCHOOL_COUNTRY
和其他領域。 我正在嘗試下面的代碼,但它沒有返回我需要的東西。 對於列出的每所學校(1,000),我只想抓住特定的部分,例如:
def parseJSON(long id) {
JSONFile fileInstance = JSONFile.get(id)
def json = new JsonSlurper().setType(RELAX).parse(new FileReader(fileInstance.filePath))
def schoolInfo = json.SCHOOL_INFO
def schoolName = json.SCHOOL_INFO.SCHOOL_NAME
schoolInfo.each {
render(schoolInfo.SCHOOL_NAME)
}
}
所以基本上每個學校都打印出學校的名稱。 JSON結構:
[{
"SCHOOL_INFO": {
"SCHOOL_COUNTRY": "Finland",
"SCHOOL NAME": "Findland Higher Learning"
},
"LOCATION": {
"LONGITUDE": "24.999",
"LATITUDE": "61.001"
}
}]
我不確定它是否是唯一的錯誤,但你不能在each
讀取schoolInfo.SCHOOL_NAME
。 SCHOOL_NAME
是財產json.SCHOOL_INFO
所以it.SCHOOL_NAME
是訪問它正確的方式。 看看下面的例子:
import groovy.json.JsonSlurper
def jsonAsText = '''[{
"SCHOOL_INFO": {
"SCHOOL_COUNTRY": "Finland",
"SCHOOL NAME": "Findland Higher Learning"
},
"LOCATION": {
"LONGITUDE": "24.999",
"LATITUDE": "61.001"
}
}]'''
def json = new JsonSlurper().parseText(jsonAsText)
def schoolInfo= json.SCHOOL_INFO
schoolInfo.each{
println it."SCHOOL NAME"
}
它打印:
Findland Higher Learning
干得好:
import groovy.json.JsonSlurper
def t = """[{
"SCHOOL_INFO": {
"SCHOOL_COUNTRY": "Finland",
"SCHOOL NAME": "Findland Higher Learning"
},
"LOCATION": {
"LONGITUDE": "24.999",
"LATITUDE": "61.001"
}
}]"""
def slurper = new JsonSlurper().parseText(t)
slurper.each {
println it.SCHOOL_INFO."SCHOOL NAME"
}
我不確定學校名稱是否應該_
簽名。
println it.SCHOOL_INFO."SCHOOL NAME"
這應該沒有_符號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.