一個 JSON 字串 string通過了 jsonlint 測驗。
response = [
{
"article" : {
"info" : {
"initial" : {
"articleIds" : [
"7461221587662919569"
],
}
},
"text" : "where they would 'transfer to' next.",
"lang" : "en",
}
},
{
"article" : {
"info" : {
"initial" : {
"articleIds" : [
"6613144915874808065"
],
}
},
"text" : "produto regional.",
"lang" : "pt"
}
}
]
然而,經過處理
require 'json'
file = File.read('/Users/main/jugg//article_samples.js')
data_hash = JSON.parse(file)
一個留下一個陣列,而更常見的是帶有名稱的散列標記后續陣列,其中一個使用該命名法,例如response['data']
但在這種情況下,陣列無法通過response[0]. 如何將其視為一個陣列以處理每個單獨的元素collection.each do |member|?
好奇心:data_hash.class => NilClass
uj5u.com熱心網友回復:
來自的response = ...代碼article_samples.js是 JavaScript,而不是 JSON。這將初始化一個以responseJavaScript 陣列命名的變數。
要將其用作 JSON,請將檔案重命名為 并從檔案中article_samples.json洗掉response = 。第一行應以[.
現在,只要article_samples.json檔案位于正確的路徑中,您的第二個代碼塊就應該可以正常作業。
另外,我建議您找到一種使路徑更靈活的方法。當前硬編碼的方式直接與當前機器的檔案系統相關聯。如果您想從另一臺機器運行此代碼,這將不起作用,因為檔案夾/Users/main/juggprobalby 將不存在。
如果這是一個帶有 ruby?? on rails 的 web 服務器,那么一個解決方案是創建一個環境變數,其中包含該檔案的存盤路徑。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/534552.html
標籤:JSON红宝石
