【问题标题】:How to get value of numeric object property via jq?如何通过 jq 获取数字对象属性的值?
【发布时间】:2018-12-12 11:44:12
【问题描述】:

我在example.json 文件中有一个带有数字键的 json 对象:

{
  "1": "foo",
  "2": "bar"
}

我想通过jq按键获取它的属性,我试过了:

$ jq ."1" example.json
0.1

jq .["1"] example.json
jq: error (at example.json:4): Cannot index object with number

结果应该是

"foo"

虽然。

【问题讨论】:

    标签: json bash key jq


    【解决方案1】:

    命令:

    jq ."1" example.json
    

    不起作用,因为引号由 shell 解释,jq 接收的第一个参数是.1。上述命令与jq .1 example.json 相同,与jq 报告的不正确。

    您需要将jq 程序用撇号括起来,以防止shell 解释其中的任何字符:

    jq '."1"' example.json
    

    这样,jq 接收."1" 作为它的程序并愉快地解释它。

    您也可以将键名放在方括号中(正如您已经尝试过的那样),但这并没有增加任何改进,它只是同一个程序臃肿。它给了你更多理由把它放在撇号中以保护它不受外壳的影响:

    jq '.["1"]' example.json
    

    【讨论】:

      【解决方案2】:

      使用引号:

      $ jq '."1"' example.json
      "foo"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-02
        • 1970-01-01
        • 2017-04-12
        • 2021-10-18
        • 1970-01-01
        • 1970-01-01
        • 2012-12-07
        相关资源
        最近更新 更多