我正在尝试解析下面的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">