gpt4 book ai didi

json - jq:用列表包裹所有一级原子值

转载 作者:行者123 更新时间:2023-12-01 22:55:26 24 4
gpt4 key购买 nike

假设我们有一个 JSON:

{
"a" : 23,
"b" : "hi",
"c": [90],
"d": [{"j" : 80}]
}

我想把它转换成

{
"a" : [23],
"b" : ["hi"],
"c": [90],
"d": [{"j" : 80}]
}

如何使用 jq 执行此操作?

最佳答案

您可以根据值的类型使用if语句更新|=每个字段.[] :

.[] |= if type == "array" then . else [.] end
{
"a": [
23
],
"b": [
"hi"
],
"c": [
90
],
"d": [
{
"j": 80
}
]
}

Demo

除了检查 typearray 相比,您还可以只更新 scalars,它们都是不可迭代的,即没有数组和没有对象:

(.[] | scalars) |= [.]
{
"a": [
23
],
"b": [
"hi"
],
"c": [
90
],
"d": [
{
"j": 80
}
]
}

Demo

关于json - jq:用列表包裹所有一级原子值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73385429/

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