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

Groovy修改JSON时出现参数类型不匹配错误求助

问题分析与解决

错误原因

TerminatingInstances是数组类型,你直接通过builder.content.TerminatingInstances.InstanceId赋值,相当于试图给数组对象本身设置InstanceId属性,但数组并没有这个属性,自然会触发argument type mismatch类型不匹配错误。

解决方法

你需要先定位到数组中的具体元素,再修改该元素的InstanceId属性。以下是具体实现示例:

示例代码

import groovy.json.JsonSlurper
import groovy.json.JsonBuilder

// 读取并解析JSON文件
def jsonSlurper = new JsonSlurper()
def content = jsonSlurper.parse(new File("response.json"))

// 修改数组中的元素(两种方式)
// 方式1:遍历数组修改所有元素的InstanceId
content.TerminatingInstances.each { instance ->
    instance.InstanceId = "id-updated"
}

// 方式2:修改数组中指定索引的元素(比如第一个元素,索引从0开始)
// content.TerminatingInstances[0].InstanceId = "id-updated"

// 用JsonBuilder生成修改后的JSON
def builder = new JsonBuilder(content)
println(builder.toPrettyString())

关键说明

  • 数组类型的JSON节点,必须通过索引(如[0])或者遍历(如each方法)获取到单个对象元素后,才能修改其属性。
  • 修改完成后,直接将修改后的content传入JsonBuilder即可生成新的JSON内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:05:25