JQ将数组映射到具有索引的对象-如何

问题描述

非常简单:

我所拥有的:'["a","b","c"]'

我想要什么:

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

我正在做什么。

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

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

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

解决方法

功能解决方案:

Object

或更简洁地说:

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

或更一般地说:

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