加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读