如何使用Groovy去除JSON字符串中的内层方括号
问题根因
line.split(',') 方法返回的是字符串数组类型,直接将数组强转为String后存入列表时,Groovy中数组默认的toString()输出格式为[元素内容],序列化后就会出现你遇到的多余内层方括号问题。
调整方案
如果你的CSV每行仅包含1个字段(和你给出的输出样例场景一致),直接取拆分后数组的第一个元素存入列表即可,修改后代码如下:
lines=read from csv def payload = [] lines.each { line -> def contractor = line.split(',') // 取拆分后的第一个元素存入,避免使用数组的toString结果 payload.add(contractor[0] as String) } vars.put('payload', new groovy.json.JsonBuilder(payload).toPrettyString()) log.info(vars.get('payload'))
如果CSV字段首尾存在多余空格,可将存入逻辑改为payload.add(contractor[0].trim() as String)自动去除空格。
如果你的CSV每行实际包含多个字段,需要将所有字段都展开到同一个payload数组中,可将add改为addAll:
lines.each { line -> def contractor = line.split(',') // 将当前行拆分出的所有元素批量添加到payload中 payload.addAll(contractor*.toString()) }
调整后生成的JSON就符合你需要的["abc","jagan1","jagan2","jagan3"]格式。
内容的提问来源于stack exchange,提问作者Jagannatha Mv
相关产品推荐
相关产品推荐

