json - 当键是数字字符串时使用jq从json获取数据

标签 json bash jq

我是 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

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

最佳答案

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

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/

相关文章:

javascript - 将 Json Javascript 格式转换为 PHP 可读格式

bash - 如何在别名中的管道内转义 grep 和 awk?

bash - 如何根据可用空间调整进度条的大小?

bash - 如何从 bash 中查看 "set"的手册页

json - jq 将过滤器的结果包含在新过滤器中

json - 使用 JQ 将对象添加到动态键

json - 如何用jq获取完整的对象/数组?

json - 在 Swift 中访问嵌套数据

javascript - 如何使用 getJSON 解析和列出来自谷歌的字体

ios - JSON 到核心数据 SQLITE 错误