2016-12-20 12 views
0

xml応答をjsonに変換して特定の値を取得するにはどうすればよいですか。ここ は、私が試したものです:XMLレスポンスをjsonに変換し、Ruby on Railsでそのjsonの値を取得する方法は?

response = HTTParty.post 'http://api.ontraport.com/cdata.php', 
{:body => {:appid => 'YeBz0j1',:key => 'NqweN80',:reqType => "fetch_sequences" }} 
response = Hash.from_xml(response).to_json 
render json: (response) 

そして、私は結果取得しています:

{"result":{"sequence":[{"id":"148"},{"id":"211"},"!Kyle OP Test","(SS) AnikSIB - 1 Hour Reminder","(SS) AnikSIB - 5 minutes Reminder","(SS) AnikSIB - Attended After Over"]}} 

しかし、私はrender json: (response['result'])を書く場合に、その後、私の出力は、それはちょうど私がどのように使用できるかoutput.Andとしてresultを印刷間違っていますかわいいプリントのためのJSON.pretty_generate

答えて

0

あなたは最初の場所でのハッシュに対処する必要があります

response = Hash.from_xml(response) 

はNB:あなたのコード内Hash.from_xml(response).to_jsonがそれぞれのJSONを含む、文字列を生産していました。今、あなたはすることができます:

render json: response['result'] 

一つは、エンジンはそれ自身でそれを変換する、明示的renderto_jsonを呼び出す必要はありません。

追記:responce['result']印刷"result"文字列がString#[]メソッドの呼び出しの面白い副作用です。 to_jsonの後にresponseにはという文字列が含まれ、ハッシュはjsonに変換され、部分文字列には"result"という部分文字列が存在するため、部分文字列が出力されます。

関連する問題