首页 > 解决方案 > 使用JsonSlurper遍历列表时如何提取json内容而不丢失引号

问题描述

我正在使用 Groovy 脚本下载和处理 json 对象列表,例如:

[{"id":"5e98ad599c8f","type":"sale"}, {"id":"dsfugjb8f","type":"return"}]

我使用 JsonSlurper 并成功地遍历列表条目并在每次迭代中提取各个键值。
问题是我还需要将每个列表条目作为一个字符串整体提取,以将其存储在一个变量中。我使用了“it.toString()”,它提供了整个条目,但在键和字符串值周围没有引号。我需要保留原始格式,以便以后可以在某些下游流程中将其用作有效的 Json 字符串。

这是代码

        groovy.json.JsonSlurper slurper = new groovy.json.JsonSlurper()
        def trans_list = slurper.parseText(trans_data)
        line_num = 0
        if ( trans_list[0] != null ) {  
            trans_list.each {it ->
                line_num++
                trans_rec.value['trans_json'] = it.toString()
                trans_rec.value['id'] = it.get('id')
                trans_rec.value['type'] = it.get('type')     
            }
        }

使用 it.toString() 为上面给出的示例保存列表条目的结果是:

   {id:5e98ad599c8f,type:sale}

有没有办法为每个条目提取原始 json 字符串?

不胜感激,

费尔

标签: jsongroovy

解决方案


推荐阅读