2016-11-22 32 views
0

我正在研究Ruby on Rails中的一個簡單API,它將與Google翻譯API(使用簡單的技巧來免費獲取響應)連接並處理輸出。Google將免費的api resposne轉換爲JSON Array in ruby​​

我的要求看起來即:

https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=es&dt=t&q=build

和響應我從谷歌服務器獲取如下(不能得到JSON格式的響應,如設置客戶端「 p」不再工作)

[[[ 「construir」, 「建」 ,,, 1] ,, 「EN」]

在java中,我可以通過創建JSONArray對象來輕鬆處理該響應,但是我找不到在ruby on rails應用程序中這樣做的方法。

我使用其他的客戶端,以請求

@response=RestClient.post('http://myrequestblabla') 
@jsonArray = JSON.parse(response.body) 

和最後一行失敗,

一個JSON文本必須至少包含兩個字節!

有沒有辦法處理這樣的回覆?理想情況下將它分解成JSONArray,但很樂意看到任何整潔的解決方案。

謝謝,

+0

爲您給出的示例提供預期的JSON輸出,因爲我們可能不知道Java的JSONArray是幹什麼的。 – lcguida

回答

1

您可以使用YAML模塊來解析此字符串。首先插入逗號之間的空值因此字符串會是這樣的:

[[["construir","build",null,null,1]],null,"en"] 

正則表達式字符串由gsub和使用YAML模塊load方法:

require 'yaml' 
str = RestClient.post('http://myrequestblabla') 
YAML::load(str.gsub(/(?<=,),/,'nil,')) 

,你會得到一個數組[[["construir", "build", nil, nil, 1]], nil, "en"]