Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQ-将值附加到特定值的JSON数组格式_Json_Bash_Jq - Fatal编程技术网

JQ-将值附加到特定值的JSON数组格式

JQ-将值附加到特定值的JSON数组格式,json,bash,jq,Json,Bash,Jq,我正在努力做到这一点: [ ["John Black",[ ["Lorem ipsum dolor sit amet.",27], ["Ut tempus lectus ut mi.",23] ]], ["Peter Pan",[ ["Quisque pulvinar odio.",22], ["Nec ut lorem quis interdum elit.",32] ]], [

我正在努力做到这一点:

[   
    ["John Black",[ 
        ["Lorem ipsum dolor sit amet.",27], 
        ["Ut tempus lectus ut mi.",23]
    ]],
    ["Peter Pan",[ 
        ["Quisque pulvinar odio.",22],
        ["Nec ut lorem quis interdum elit.",32]
    ]],
    ["Gary Halbert",[ 
        ["Placerat aliquam.",17]
    ]],
    ["Richard Gere",[ 
        ["Porttitor commodo fermentum.",28]
    ]]
]
到现在为止,我得到的是:

export A=$(cat <<'EOL'
[
["John Black",["Lorem ipsum dolor sit amet.",27]],
["Peter Pan",["Quisque pulvinar odio.",22]],
["John Black",["Ut tempus lectus ut mi.",23]],
["Gary Halbert",["Placerat aliquam.",17]],
["Peter Pan",["Nec ut lorem quis interdum elit.",32]],
["Richard Gere",["Porttitor commodo fermentum.",28]]
]
EOL
)
echo "$A" | jq 'map({(.[0]): .[1]}) | add'
我正在使用jq-1.5。
有什么想法吗?谢谢。

Couchdb引擎是仅附加的,这意味着每个文档都将由Couchdb附加到文件管理器中,并且每个文件都与数据库相关

要正确使用,请考虑如何避免在同一文档中进行更新,请记住所有修订都将被存储

我对每个文件的建议

{
“姓名”:“约翰·布莱克”,
“条目”:[
{
“测试”:“Lorem ipsum dolor sit amet.”,
“价值”:27
}, 
{
“文本”:“我的时间和方向。”,
“价值”:23
}
],
“类型”:“用户”
}

这是减速器的适当用例。以下大部分内容与连接共享键下的项无关,而是与将它们放入所需的嵌套列表形式有关:

jq -n '[
  inputs |
  reduce .[] as $item ({}; .[$item[0]] += [$item[1]]) |
  to_entries |
  .[] |
  [.key, .value]
]' <<<"$A"

因此,使用CouchDB,如果我需要向作者添加其他引用,我必须阅读JSON对象/数组,进行添加并覆盖整个文档?是的,这将生成一个修订版,它是文档的副本。之前的问题版本是否引用了CouchDB?(由于当前版本只询问jq,我很好奇在这里看到这个)。问题太大了,所以我编辑了它。就我所知,在我的情况下,与CouchDB合作并没有太多收获。事实上,我决定将JSON数组保存到一个gunziped文本文件中,并将其读回JQ以供后续版本使用会更快;它不必要地使用了有限的资源(环境变量存储在用于参数向量的相同空间中,因此当您导出shell变量时,您正在减少该shell所有子进程的最大命令行长度)。伙计,您从哪里了解到的?如果那是一本书,我也想要…@罗杰:看看有没有这方面的书或课程,我想知道@罗杰:你在电影中找不到如此先进的技术,但是电影涵盖了一切——尽管是以一种浓缩的形式,可能不会让可能性变得显而易见。然而,手册中确实有一些例子,还有一个例子。最后,已经有很多很好的答案了(这一个肯定合格)。
jq -n '[
  inputs |
  reduce .[] as $item ({}; .[$item[0]] += [$item[1]]) |
  to_entries |
  .[] |
  [.key, .value]
]' <<<"$A"
[
  ["John Black", [["Lorem ipsum dolor sit amet.", 27], ["Ut tempus lectus ut mi.",23]]],
  ["Peter Pan", [["Quisque pulvinar odio.",22], ["Nec ut lorem quis interdum elit.", 32]]],
  ["Gary Halbert", [["Placerat aliquam.", 17]]],
  ["Richard Gere", [["Porttitor commodo fermentum.", 28]]]
]