【发布时间】:2017-07-14 20:28:09
【问题描述】:
所以我试图用 jq 提取一些 JSON。
这是一个例子:
{
"limit":10,
"offset":20,
"values": [
{
"id": "abcd"
"type": "file"
"users": {
"total": 2,
"profiles": [
{
"first_name": "John",
"last_name": "Smith"
},
{
"first_name": "Sue",
"last_name": "Johnson"
}
]
}
},
{
"id": "efgh"
"type": "folder"
"users": {
"total": 1,
"profiles": [
{
"first_name": "Steve",
"last_name": "Gold"
}
]
}
},
]
}
我希望在我的结果中得到以下结果
limit:10
offset:20
id:abcd, type:file, [users.total:2, users.profiles.first_name: [John, Sue], users.profiles.last_name: [Smith, Johnson]],
id:efgh, type:folder, [users.total:1, users.profiles.first_name: [Steve], users.profiles.last_name: [Gold]],
我知道我可以将它通过管道传输到 jq,但我不知道如何。我可以轻松地在数组中获取东西,但我似乎无法弄清楚如何去做并添加顶级元素。所以让我大吃一惊的是“限制”和“偏移”。
我可以得到一些东西
jq ".values[] | .users.total, .users[].first_name, .users[].last_name"
但我似乎无法弄清楚如何添加限制和偏移量。
【问题讨论】:
-
您的 JSON 中缺少一堆逗号。
-
您使用的是哪个版本的
jq?由于缺少逗号和额外的逗号,我的 1.5.1 无法解析此 JSON,在修复该问题后,它失败并显示“无法使用字符串“first_name”索引编号” -
应该是
.users.profiles[].first_name -
对不起。我只是发布了一些即时制作的内容,并尝试在 stackoverflow 中对其进行格式化,使其看起来不错让我忘记了逗号。