在JSON頂部的元素,你正在閱讀實際上是一個Array,它的每個元素實際上是一個散列,就像這樣:
[
{
"cve_id": "CVE-2014-3976"
// other key/value pairs
}
{
"cve_id": "CVE-2014-3975"
// other key/value pairs
}
{
"cve_id": "CVE-2014-3974"
// other key/value pairs
}
// .... more hashes
]
所以@json
是一個數組。如果您要訪問的任何元素,你有一個數值整數指數喜歡訪問它,所以:
@json[0] # => { "cve_id": "CVE-2014-3976", // other key/value pairs }
我認爲你正在試圖收集所有這些哈希的cve_id
領域,這樣可以完成如下:
cveIds = @json.collect { |h| h["cve_id"] }
# The result:
=> ["CVE-2014-3976", "CVE-2014-3975", "CVE-2014-3974", "CVE-2014-3962", "CVE-2014-3961",
"CVE-2014-3878", "CVE-2014-3871", "CVE-2014-3842", "CVE-2014-3806", "CVE-2014-3792",
"CVE-2014-3791", "CVE-2014-3443", "CVE-2014-3247", "CVE-2014-3246", "CVE-2014-3225",
"CVE-2014-3216", "CVE-2014-3139", "CVE-2014-3138", "CVE-2014-3008", "CVE-2014-2996",
"CVE-2014-2994", "CVE-2014-2976", "CVE-2014-2850", "CVE-2014-2847", "CVE-2014-2671",
"CVE-2014-2668", "CVE-2014-2588", "CVE-2014-2587","CVE-2014-2586", "CVE-2014-2579"]
用最簡單的話來說。 'JSON.parse(file.read)'返回記錄數組。所以把它解析爲數組,你完成了 –