0
我有一個調用api的幫助器方法。 api將文本文件轉換爲pdf,並用原始文件路徑,新文件路徑和頁數進行響應。從API的迴應是這樣的:如何正確分析哈希值?
response = {"originalPath":"FILE_PATH", "previewPath":"DIFFERENT_PATH", "numPages":1}
從我的理解,我應該能夠訪問該鍵值如下:
response[:numPages]
response[:previewPath]
然而,當我嘗試解析哈希這種方式,我得到一個TypeError(沒有將Symbol隱式轉換爲Integer)。我非常難以接受這種迴應,有什麼想法?
編輯
這實際上是爲我工作之前,我被解析這樣的迴應:正如我所說的
res = RestClient.post(uri.join,
{
:file => File.new(file_path, 'rb')
})
response = []
response << res.split(/>(\d)</)[1]
response << res.split(/<previewPath>(L:\\MailFiles\\PDF\\sub_order_\d*\.pdf)/)[1]
response
,這是爲我工作,但現在當我返回回到呼叫控制器,我的迴應是:
[nil, nil]
這個很困惑。
編輯
現在,我已經改變了上面這個樣子:
response << res.body
,看起來像這樣:
["{\"originalPath\":\"L:\\\\MailFiles\\\\Originals\\\\file.plain\",\"previewPath\":\"L:\\\\MailFiles\\\\PDF\\\\sub_order_110986.pdf\",\"numPages\":1}"]
這是令人討厭的地獄,但至少我想我可以解析這個。將繼續更新,感謝評論人!
你可以粘貼代碼來解析api響應嗎? –
這取決於它如何被解析。 HWIA和純Hash之間有區別,例如,如果response不是HWIA,那麼'response ['numPages']'應該可以工作。 –