gpt4 book ai didi

json - 在 bash 中使用 jq 更改 json

转载 作者:行者123 更新时间:2023-11-29 09:25:29 26 4
gpt4 key购买 nike

我有以下 json

{
"name" : "qwerty",
"values" :[
{
"field1" : [
"val1"
],
"field2" : [
"val2"
],
"name1" : [["a", "b"], ["c", "d"]]
},
{
"field1" : [
"val3"
],
"field2" : [
"val4"
],
"name1" : [["a", "b"], ["c", "d"]]
},
{
"field1" : [
"val5"
],
"field2" : [
"val6"
],
"name1" : [["a", "b"], ["c", "d"]]
}
]
}

我需要在 bash 中使用 jq 将上面的 json 更改为以下内容

{
"name" : "qwerty",
"values" :[
{
"field1" : "val1",
"field2" : "val2",
"new_name" : [["a", "b"], ["c", "d"]]
},
{
"field1" : "val3",
"field2" : "val4",
"new_name" : [["a", "b"], ["c", "d"]]
},
{
"field1" : "val5",
"field2" : "val6",
"new_name" : [["a", "b"], ["c", "d"]]
}
]

}

这里我面临以下问题:

我尝试用标记值解析内部 json 并将 '[' ']' 替换为空格,但是,当我尝试将“值”以列表形式放入变量时,jq 正在美化然后显示每个新行作为数组的一个元素。

values数组中的内部json个数不固定。

有人可以帮我构建要在 bash 中运行的 jq 语句以进行所需的更改吗。

最佳答案

这应该有效;我不确定是否有办法重构对 field1field2 的分配:

jq '.values[] |= (.field1=.field1[0] | .field2=.field2[0])' tmp1.json

关于json - 在 bash 中使用 jq 更改 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39015374/

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