我有一个结构类似于下面的JSON文档,我正在尝试在Groovy中解析它。基本上,对于每个学校(学校信息),我想抓取SCHOOL_COUNTRY和其他字段。我正在尝试下面的代码,但它没有返回我需要的东西。对于列出的每个学校(1000个),我只想获取特定的部分,例如:
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"
}
}]发布于 2014-09-11 06:35:44
我不确定这是不是唯一的bug,但是你不能在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发布于 2014-09-11 17:20:29
这就是了:
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"
}我不确定学校的名字上是否应该有_的标志。
发布于 2016-01-29 03:50:53
println it.SCHOOL_INFO."SCHOOL NAME"这应该可以在没有_ sign的情况下工作。
https://stackoverflow.com/questions/25775267
复制相似问题