Json 如何通过jq获取数值对象属性的值?
我在Json 如何通过jq获取数值对象属性的值?,json,bash,key,jq,Json,Bash,Key,Jq,我在example.json文件中有一个带有数字键的json对象: { "1": "foo", "2": "bar" } 我想通过jq键获取其属性,我已经尝试了: $ jq ."1" example.json 0.1 及 结果应该是 "foo" 尽管如此。使用引号: $ jq '."1"' example.json "foo" 使用引号: $ jq '."1"' example.json "foo" 命令: jq ."1" example.json 不起作用,因为引号由she
example.json
文件中有一个带有数字键的json对象:
{
"1": "foo",
"2": "bar"
}
我想通过jq
键获取其属性,我已经尝试了:
$ jq ."1" example.json
0.1
及
结果应该是
"foo"
尽管如此。使用引号:
$ jq '."1"' example.json
"foo"
使用引号:
$ jq '."1"' example.json
"foo"
命令:
jq ."1" example.json
不起作用,因为引号由shell解释,jq
接收的第一个参数是.1
。上面的命令与jq.1 example.json完全相同,并且在jq
报告中不正确
您需要将jq
程序用撇号括起来,以防止shell解释其中的任何字符:
jq '."1"' example.json
通过这种方式,jq
接收“1”
作为其程序并愉快地解释它
您也可以将密钥名称放在方括号中(正如您已经尝试过的),但这并没有增加任何改进,它只是同一个程序的膨胀。它给了你更多的理由把它放在撇号中以保护它不受外壳的伤害:
jq '.["1"]' example.json
命令:
jq ."1" example.json
不起作用,因为引号由shell解释,jq
接收的第一个参数是.1
。上面的命令与jq.1 example.json完全相同,并且在jq
报告中不正确
您需要将jq
程序用撇号括起来,以防止shell解释其中的任何字符:
jq '."1"' example.json
通过这种方式,jq
接收“1”
作为其程序并愉快地解释它
您也可以将密钥名称放在方括号中(正如您已经尝试过的),但这并没有增加任何改进,它只是同一个程序的膨胀。它给了你更多的理由把它放在撇号中以保护它不受外壳的伤害:
jq '.["1"]' example.json