0
我正在使用允許使用Ruby代碼中的Stackoverflow API工作的Rubyoverflow gem。而且我注意到,有時我得到錯誤信息:在破解中的錯誤?
Invalid JSON string
我試圖分析代碼,並發現,當#1的答案有非ASCII字符錯誤發生。
Rubyoverflow使用HTTParty gem,HTTParty gem使用Crack gem來解析JSON文件。
module Crack
class JSON
def self.parse(json)
json = json.delete!("^\u{0000}-\u{007F}") # here is my fix
YAML.load(unescape(convert_json_to_yaml(json)))
rescue ArgumentError => e
raise ParseError, "Invalid JSON string"
end
我已經添加了一行代碼來從JSON中刪除所有非ASCII字符,並且錯誤已修復。
現在我想知道誰是我需要報告有關此錯誤的人。
- 是否可以包含非ASCII字符到JSON文件?
- 是否可以包含非ascii字符到YAML文檔?
- 如果standarts允許在YAML類中包含非ascii字符到JSON和YAML - >錯誤。這樣對嗎?誰是這個類的作者,哪個是修復這個bug的最好方法?
快速搜索顯示[作者可以在github上](https://github.com/eadz/rubyoverflow)。如果它真的是一個錯誤,那麼你會在這裏提交錯誤報告。我不認爲這是事實,但我認爲問題在於你不瞭解規範,或者如何處理Unicode。我希望看到修改後的問題,因爲「我想知道誰是我需要報告有關此錯誤的人」,這一點對於SO來說並不是一個好問題。 – 2011-04-17 00:31:40
這個例子中沒有我的代碼。 Stackoverflow發佈JSON,Rubyoverflow與這個JSON協同工作,HTTParty獲取這個JSON,Crack將JSON轉換爲YAML並且YAML-lib加載這個YAML。問題是誰是錯誤的共同之處。你爲什麼決定在Rubyoverflow中的原因?你確定Stackoverflow給出了正確的JSON嗎?你確定所有其他的寶石和圖書館都能正常工作嗎? – demas 2011-04-17 01:23:25
@ The Tin Man:確保你鏈接到正確的github項目;)。這是原始項目的一個分支,沒有額外的提交 – 2011-04-21 19:12:11