Win*_*ute 24
编辑:在评论中澄清后,要检索键"以"调光器"开头的设备的状态,请使用
jq '[ .devices | to_entries[] | select(.key | startswith("dimmer")) | .value = .value.state ] | from_entries' filename.json
Run Code Online (Sandbox Code Playgroud)
输出:
{
"dimmer1": "off",
"dimmer2": "off"
}
Run Code Online (Sandbox Code Playgroud)
其工作原理如下:
.devices选择.devicesJSON对象的属性to_entries将对象分解为描述其属性(设备)的键值对数组,也就是说属性"foo": "bar"成为对象{ "key": "foo", "value": "bar" },并将展开的对象扩展为此类对象的数组(每个属性一个)to_entries[] 解压缩该数组,以便通过它select(.key | startswith("dimmer")),选择那些键开头的设备 dimmer.value = .value.state重新构造描述设备的键值对,以便仅使用其state属性替换该值[ all that ] 制作所有这些的JSON数组,和[ all that ] | from_entries 将键值对数组转换回JSON对象.要检索devices数组中属性的键:
jq '.devices | keys' filename.json
Run Code Online (Sandbox Code Playgroud)
要检索值(也在数组中),
jq '[ .devices[] ]' filename.json
Run Code Online (Sandbox Code Playgroud)
我不完全确定你指的是哪两个.
| 归档时间: |
|
| 查看次数: |
33374 次 |
| 最近记录: |