【问题标题】:JQ to map array to object with index - how toJQ 将数组映射到具有索引的对象 - 如何
【发布时间】:2021-01-01 12:12:12
【问题描述】:

很简单:

我有什么:'["a","b","c"]'

我想要什么:

{
  "1":"a",
  "2":"b",
  "3":"c"
}

我正在处理什么。

echo '["a","b","c"]' | jq '. | map({(index(.)) : (.)})'

我得到了什么(它似乎在连续更小的数组上运行):

 echo '["a","b","c"]' | jq '. | map(index((.)))'
[
  0,
  0,
  0
]

【问题讨论】:

    标签: json object jq dynamically-generated


    【解决方案1】:

    功能性解决方案:

    [to_entries[] | {(.key+1|tostring): .value}] | add
    

    或者,更简洁:

    with_entries(.key |= (1+.|tostring))
    

    或者,更简单地说:

    . as $in
    | reduce range(0;length) as $i (null; 
        . + {($i+1|tostring): $in[$i]})
    

    【讨论】:

    • 平淡当你做某事平淡无奇时,你会以一种普通、直接的方式去做简明扼要一种将需要说清楚的内容表达清楚的方式。 (对于不会说英语的人;))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2021-02-09
    • 2020-10-02
    • 2015-06-25
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    相关资源
    最近更新 更多