我是 jq 的新手,在解析我的 json 时遇到问题

我有一个 json 存储在这样的变量中

temp='{ "1": { "my_name": "one" }, "2": { "my_name": "two" } }'

现在我需要为其他两个条目获取 my_name 的值

我试过这样的事情
echo $temp | jq '.1' //out put 0.1
I was assuming to get { "my_name": "one" }

同样为了获得 my_name 值,我做了
echo $temp | jq '.1.my_name' // Its output is giving me error

任何人都可以帮助确定我的语法有什么问题以及如何纠正它。

最佳答案

只是数字被解释为浮点数。您需要在它明确是键字符串的上下文中使用它。

echo "$temp" | jq '.["1"]["my_name"]'


echo "$temp" | jq '.["1"]'

获取包含的字典。

有了足够新的 jq(我认为 >= 1.4),您还可以说
echo "$temp" | jq '."1".my_name'

关于json - 当键是数字字符串时使用jq从json获取数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28844295/

10-13 05:34