【发布时间】:2017-10-21 15:18:30
【问题描述】:
使用 jq,我想从以下 json 中挑选键/值对:
{
"project": "Project X",
"description": "This is a description of Project X",
"nodes": [
{
"name": "server001",
"detail001": "foo",
"detail002": "bar",
"networks": [
{
"net_tier": "network_tier_001",
"ip_address": "10.1.1.10",
"gateway": "10.1.1.1",
"subnet_mask": "255.255.255.0",
"mac_address": "00:11:22:aa:bb:cc"
}
],
"hardware": {
"vcpu": 1,
"mem": 1024,
"disks": [
{
"disk001": 40,
"detail001": "foo"
},
{
"disk002": 20,
"detail001": "bar"
}
]
},
"os": "debian8",
"geo": {
"region": "001",
"country": "Sweden",
"datacentre": "Malmo"
},
"detail003": "baz"
}
],
"detail001": "foo"
}
为了举例,我想解析以下键及其值:“Project”、“name”、“net_tier”、“vcpu”、“mem”、“disk001”、“disk002” .
我能够毫无问题地解析单个元素,但由于完整解析的分层性质,我在解析不同的分支(即网络和硬件 > 磁盘)时运气不佳。
任何帮助表示赞赏。
编辑:
为清楚起见,我要输出的是逗号分隔的 CSV。在解析所有组合方面,现在覆盖示例中的示例数据即可。我希望能够扩展任何建议。
【问题讨论】:
-
那么,您的预期输出究竟是什么?您提到了这些领域,但您希望它的结构如何?数据中还有一堆数组。如果超出示例中的内容,它将如何影响您的预期输出?你希望输出所有的组合吗?请在您的问题中更清楚地说明这一点。
-
谢谢杰夫,为了清楚起见,我进行了编辑。
标签: json parsing key jq extraction