Groovy – JsonSlurper解析JSON文件
发布时间:2020-12-14 16:29:00 所属栏目:大数据 来源:网络整理
导读:我有一个类似于下面结构的 JSON文档,我试图在Groovy中解析它.基本上每个学校(学校信息),我想抓住SCHOOL_COUNTRY和其他领域.我正在尝试下面的代码,但它没有返回我需要的东西.对于列出的每所学校(1,000),我只想抓住特定的部分,例如: def parseJSON(long id) {
我有一个类似于下面结构的
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" } }] 解决方法
我不确定它是否是唯一的错误,但你不能在每个中读取schoolInfo.SCHOOL_NAME. SCHOOL_NAME是json.SCHOOL_INFO的财产,所以它.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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |