jq中如何通过元素名称选择子元素

问题描述 投票:0回答:1

我想用

jq
选择“
bin
”->“
configurable-http-proxy
”。

package.json:

{
  "version": "4.6.1",
  "name": "configurable-http-proxy",
  "dependencies": {
    "commander": "~7.2",
    "http-proxy": "^1.18.1",
    "prom-client": "14.2.0",
    "strftime": "~0.10.0",
    "winston": "~3.11.0"
  },
  "bin": {
    "configurable-http-proxy": "bin/configurable-http-proxy"
  }
}

这是jq代码,但出现以下错误:

# echo "bin: $(jq -r ".bin" "package.json")"

bin: {
  "configurable-http-proxy": "bin/configurable-http-proxy"
}

# echo "proxy: $(jq -r ".bin.configurable-http-proxy" "package.json")"

jq: error: http/0 is not defined at <top-level>, line 1:
.bin.configurable-http-proxy                  
jq: error: proxy/0 is not defined at <top-level>, line 1:
.bin.configurable-http-proxy                       
jq: 2 compile errors
proxy: 

这是预期的输出:

# echo "real-path: $(jq -r ".bin.configurable-http-proxy" "package.json")"

real-path: bin/configurable-http-proxy

如何通过

sub element
获得
name

bash ubuntu jq package.json
1个回答
0
投票

您需要使用

.bin["configurable-http-proxy"]
作为第一个选择器。

© www.soinside.com 2019 - 2024. All rights reserved.