【发布时间】:2016-11-24 19:37:39
【问题描述】:
我可以在 [] 内的 json 中获取第一个元素
$ echo '[{"a":"x", "b":true}, {"a":"XML", "b":false}]' | jq '.[1]'
{
"a": "XML",
"b": false
}
但是如果json已经被反汇编了(例如,在使用'select'过滤条目之后),我怎样才能选择单个条目并避免这里看到的错误?
$ echo '[{"a":"x", "b":true}, {"a":"x", "b":false},{"a":"XML", "b":false}]' | jq '.[] | select( .a == "x")'
{
"a": "x",
"b": true
}
{
"a": "x",
"b": false
}
$ echo '[{"a":"x", "b":true}, {"a":"x", "b":false},{"a":"XML", "b":false}]' | jq '.[] | select( .a == "x") | .[1]'
jq: error (at <stdin>:1): Cannot index object with number
【问题讨论】:
-
'.[1]'实际上得到了第二个元素。'.[0]'会让你第一个。 Javascript 的数组是从零开始的。