2013-04-15 92 views
1

我試圖處理與API的Bigcommerce邊緣的情況下問題返還無效JSON對象,從而導致未配對octects這裏討論:A JSON text must at least contain two octets申請猴補丁在軌JSON解析

我認爲解決的辦法是部署(從該線程)的代碼:

module JSON 
    def self.parse_nil(json) 
    JSON.parse(json) if json && json.length >= 2 
    end 
end 

parsed = JSON.parse_nil(json) 

我在哪裏部署此代碼應用補丁?

回答

1

這些補丁通常會添加到/config/initializers目錄中空的.rb文件中(例如,參見here)。請注意,修補程序不應包含最後一行:

parsed = JSON.parse_nil(json) 

這是爲了演示目的而添加的。

+0

我把它放在'/ config/initializers/json.rb'中,它似乎在加載,但它仍然拋出了不可解析的JSON響應錯誤。我是否錯過一行來覆蓋'parse'方法? – RSG

+0

這個補丁的想法是在你使用'JSON.parse'的地方使用'JSON.parse_nil'。如果此調用是由其他庫創建的,則需要製作一個別名方法鏈才能正確解析此問題。 – PinnyM

+0

Gotcha。加入並修改了BigCommerce gem來調用'parse_nil'而不是解析,並且所有的都很好。謝謝:) – RSG