使用 Groovy 将 json 附加到现有的 json 文件中
Posted
技术标签:
【中文标题】使用 Groovy 将 json 附加到现有的 json 文件中【英文标题】:Append json into existing json file using Groovy 【发布时间】:2018-07-04 21:44:25 【问题描述】:我对 Groovy(和 json)还很陌生,正在玩弄这段代码试图让它工作,几乎但还没有完全到达那里,需要一点帮助......
所以我要做的是解析一个现有的 json 文件,然后添加/附加其他条目,如下例所示:
原始Json
"organisation": "company",
"modules": [
"description": "Module 1",
"type": "Q1",
,
"description": "Module 2",
"type": "Q2",
,
"description": "Module 3",
"type": "Q3",
]
新的 Json
modules
description 'Module 4'
type 'TEST'
预期的最终输出
"organisation": "company",
"modules": [
"description": "Module 1",
"type": "Q1",
,
"description": "Module 2",
"type": "Q2",
,
"description": "Module 3",
"type": "Q3",
,
"description": "Module 4",
"type": "TEST",
]
我已经尝试了以下代码 sn-p 的许多变体,但仍然没有为我的预期输出获得正确的格式
def inputFile = file("modules.json")
def outputFile = new File("modules.new.json")
def json = new JsonSlurper().parseText(inputFile.text)
println "This is our original input JsonSlurper: \n"
println JsonOutput.prettyPrint(JsonOutput.toJson (json))
def builder = new JsonBuilder()
def jsonNew = builder
modules
description 'Module 4'
type 'TEST'
println "This is our combined output JsonBuilder: \n"
println JsonOutput.prettyPrint(JsonOutput.toJson ([json, jsonNew]))
结果如下:
[
"organisation": "company",
"modules": [
"description": "Module 1",
"type": "Q1"
,
"description": "Module 2",
"type": "Q2"
,
"description": "Module 3",
"type": "Q3"
]
,
"modules":
"description": "Module 4",
"type": "TEST"
]
任何帮助排序这将不胜感激。
【问题讨论】:
【参考方案1】:生成json前需要合并map:
json.modules = json.modules << jsonNew.modules
println JsonOutput.prettyPrint(JsonOutput.toJson(json))
【讨论】:
谢谢你,以为合并它们会很简单。但是它仍然不完全存在,为什么它将整个 json 包装起来,好像它是一个数组 [ ] ?以上是关于使用 Groovy 将 json 附加到现有的 json 文件中的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Excel 转换为 JSON 并将其附加到现有的 JSON 文件?