2016-11-22 8 views
0

Rubyで簡単なAPIを使用しています。これはGoogle翻訳API(簡単なテクニックを使用して無料で応答します)に接続し、出力を処理します。Googleから無料のapi resposneをRubyのJSON Arrayに翻訳する

私の要求はすなわち次のようになります。次のように

私はGoogleのサーバから取得しています

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

と応答が( 'にクライアントを設定するなど、JSON形式の応答を取得することはできませんですP」、もはや作品)

[[[ "construir"、 "ビルド" ,,, 1]] ,, "エン"]

javaではJSONArrayオブジェクトを作成することで簡単にその応答を処理できますが、Ruby on Railsアプリケーションではこれを行う方法が見つかりません。

私は

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

と最後の行がA JSONテキストは、少なくとも2つのオクテットが含まれている必要があり

で失敗した要求をするために残りのクライアントを使用しています!

このような応答を処理する方法はありますか。理想的にはJSONArrayに分割するのは理想的ですが、うまくいけば解決します。

ありがとう、

+0

私たちはJavaのJSONArrayが何をしているのかわからないので、あなたが与えた例のための期待されるJSON出力を与えてください。 – lcguida

答えて

1

この文字列を解析するためにYAMLモジュールを使用できます。 gsubによって

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

正規表現文字列とYAMLモジュールのload方法を使用します:文字列は次のようになりますので、最初のカンマの間でNULL値を挿入するあなたは配列を取得します

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

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

関連する問題