gpt4 book ai didi

具有重复键名的 JSON 在解析时丢失信息

转载 作者:行者123 更新时间:2023-12-02 05:39:28 25 4
gpt4 key购买 nike

所以要么我回去告诉别人他们应该修复他们的 JSON,要么我需要找出我做错了什么。这是 JSON,请注意 parameter 出现了三次:

String j= '''{
"jobname" : "test",
"parameters" : {
"parameter": {"name":"maxErrors", "value":"0"},
"parameter": {"name":"case", "value":"lower"},
"parameter": {"name":"mapTable", "value":"1"}
}
} '''

我正在尝试获取每个名称和值。我的代码

def doc = new JsonSlurper().parseText(j)
def doc1 = doc.entrySet() as List
def doc2 = doc.parameters.entrySet() as List
println "doc1.size===>"+doc1.size()
println "doc1===>"+doc1
println "doc2.size===>"+doc2.size()
println "doc2===>"+doc2

我的结果:

doc1.size===>2
doc1===>[jobname=test, parameters={parameter={name=mapTable, value=1}}]
doc2.size===>1
doc2===>[parameter={name=mapTable, value=1}]

我怎么只得到一个参数?另外两个在哪里?看起来 JSON 只保留一个参数并丢弃其他参数。

最佳答案

JSON 格式不正确。同一层次结构中不应有重复的键,否则它们将相互覆盖。

应该是一个参数数组。

像这样,

String j= '''{
"jobname" : "test",
"parameters" : [
{"name":"maxErrors", "value":"0"},
{"name":"case", "value":"lower"},
{"name":"mapTable", "value":"1"}
]
}

关于具有重复键名的 JSON 在解析时丢失信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11200702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com