用Ruby解析多级JSON



我正在尝试解析下面的JSON文件。问题是我不能返回"mount point"。作为钥匙。它只被解析为一个值。这是我用来解析它的命令json_data = JSON.parse(readjson)。我猜它是键的原因是因为如果我运行json_data。keys只返回EncryptionStatus和SwitchName。如有任何帮助,我将不胜感激。

{
"EncryptionStatus": [
{
"MountPoint": "C:",
"VolumeStatus": "FullyEncrypted"
},
{
"MountPoint": "F:",
"VolumeStatus": "FullyEncrypted"
},
{
"MountPoint": "G:",
"VolumeStatus": "FullyEncrypted"
},
{
"MountPoint": "H:",
"VolumeStatus": "FullyEncrypted"
}
],
"SwitchName": [
"LAN",
"WAN"
]
}

我试着使用dig作为我的JSON.parse的一部分,但这似乎没有帮助我。

JSON数据可以有多个层次。

你的JSON文件是一个

哈希(字典/地图/其他语言的对象),有两个密钥("EncryptionStatus", "SwitchName"),

EncryptionStatsu"的值key是一个哈希数组(带有键"MountPoint")和"VolumeStatus"。

# assuming your JSON is in a file called "input.json"
data = File.read("input.json")
json = JSON.parse(data)
json["EncryptionStatus"].each do |encryption_status|
puts "#{encryption_status["MountPoint"]} is #{encryption_status["VolumeStatus"]}"
end

这将输出

C: is FullyEncrypted
F: is FullyEncrypted
G: is FullyEncrypted
H: is FullyEncrypted

如果你想访问一个特定的项目,你可以看看dig方法。例如

json.dig("EncryptionStatus", 3)

将返回挂载点的信息"H">

相关内容

  • 没有找到相关文章

最新更新