You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Groovy将JSON字符串转换为数组并提取指定JSON值生成数组(附示例)

Groovy实现JSON字符串转数组及提取特定值的方法

Hey there! Groovy makes JSON handling super straightforward thanks to its built-in JsonSlurper tool—no extra libraries needed for most cases. Let's walk through both the general approach and your specific example step by step.

一、JSON字符串转数组的通用步骤

Groovy的JsonSlurper can轻松将JSON字符串解析成Groovy集合(比如List、Map),再转成你需要的数组类型。具体步骤如下:

  • 导入JsonSlurper类:首先引入Groovy的JSON处理核心类
  • 创建JsonSlurper实例:初始化解析器对象
  • 解析JSON字符串:把JSON字符串转成Groovy原生集合对象
  • 转换为数组:根据需求转成指定类型的数组(如String[]、Integer[])

通用场景示例代码:

import groovy.json.JsonSlurper

def jsonSlurper = new JsonSlurper()
// 示例JSON数组字符串
def jsonArrayString = '["apple", "banana", "cherry"]'

// 解析成Groovy List
def groovyList = jsonSlurper.parseText(jsonArrayString)

// 转成String类型数组
String[] stringArray = groovyList.toArray(new String[0])
println stringArray // 输出:[apple, banana, cherry]

二、提取示例JSON中的值生成数组

针对你给出的示例JSON:

{ "ITAB": [ "1", "12", "123", "1234", "12345" ] }

这个JSON是一个包含ITAB键的对象,对应的值是一个字符串数组。我们可以直接提取这个列表,再转成所需的数组类型:

方法1:提取为字符串数组

import groovy.json.JsonSlurper

def targetJsonString = '{ "ITAB": [ "1", "12", "123", "1234", "12345" ] }'
def jsonSlurper = new JsonSlurper()

// 解析JSON为Groovy Map对象
def jsonMap = jsonSlurper.parseText(targetJsonString)

// 提取ITAB对应的List,再转成String数组
String[] itabStringArray = jsonMap.ITAB.toArray(new String[0])

// 验证输出
itabStringArray.each { println it }
// 输出结果:
// 1
// 12
// 123
// 1234
// 12345

方法2:转换为整数数组(如果需要)

如果需要把这些字符串类型的数字转成整数数组,只需多一步类型转换:

// 提取后转成Integer类型数组
Integer[] itabIntArray = jsonMap.ITAB.collect { it.toInteger() }.toArray(new Integer[0])
println itabIntArray // 输出:[1, 12, 123, 1234, 12345]

小提示

  • 版本兼容:Groovy 2.3+推荐使用groovy.json.JsonSlurper;老版本可以用groovy.json.JsonSlurperClassic,用法基本一致。
  • 空值防护:如果JSON中ITAB字段可能不存在,建议加空判断避免报错:
    def itabList = jsonMap.ITAB ?: [] // 当ITAB不存在时,返回空列表
    

内容的提问来源于stack exchange,提问作者Febin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 10:27:42