我是jq的新手,在解析我的json时面临一个问题
我有一个json存储在这样的变量中
temp='{ "1": { "my_name": "one" }, "2": { "my_name": "two" } }'
Run Code Online (Sandbox Code Playgroud)
现在我需要为其他条目获取my_name的值
我尝试过这样的事情
echo $temp | jq '.1' //out put 0.1
I was assuming to get { "my_name": "one" }
Run Code Online (Sandbox Code Playgroud)
并且类似于获取my_name值我做了
echo $temp | jq '.1.my_name' // Its output is giving me error
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助确定我的语法有什么问题,我该如何纠正它.
谢谢
tri*_*eee 10
只是数字被解释为浮点数.您需要在明确是键字符串的上下文中使用它.
echo "$temp" | jq '.["1"]["my_name"]'
Run Code Online (Sandbox Code Playgroud)
和
echo "$temp" | jq '.["1"]'
Run Code Online (Sandbox Code Playgroud)
得到包含的词典.
有了足够新的jq(我认为> = 1.4)你也可以说
echo "$temp" | jq '."1".my_name'
Run Code Online (Sandbox Code Playgroud)
每当您尝试引用不是有效标识符的密钥时,都必须引用该密钥。有关更多详细信息,请参见手册。
要选择键下的项目1,请执行以下操作:
."1"
Run Code Online (Sandbox Code Playgroud)
对于有关如何获取my_name值的其他问题,可以执行以下操作:
to_entries | map(.value.my_name)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3536 次 |
| 最近记录: |