解析JSON重定向到Init point Ruby

时间:2012-10-18 23:58:17

标签: ruby ruby-on-rails-3 json parsing

使用此代码:

result = JSON.parse(mp_data.to_json)

我在结果中保存了以下JSON:

{"payment_methods"=>{}, "init_point"=>"https://www.mercadopago.com/mla/checkout/pay?pref_id=126967384-e4abf2e6-79c5-47c6-8c0d-fce045278336", "collector_id"=>126967384, "back_urls"=>{"failure"=>"http://www.site.com/failure", "pending"=>"https://www.site.com/pending", "success"=>"http://www.site.com/success"}, "sponsor_id"=>nil, "expiration_date_from"=>nil, "additional_info"=>"", "marketplace_fee"=>0, "date_created"=>"2012-10-18T19:46:13.791-04:00", "subscription_plan_id"=>nil, "id"=>"126967384-e4abf2e6-79c5-47c6-8c0d-fce045278336", "expiration_date_to"=>nil, "expires"=>false, "external_reference"=>"OPERATION-ID-14288", "payer"=>{"email"=>"buyer@email.com", "name"=>"John", "surname"=>"Mikel"}, "items"=>[{"id"=>"123", "currency_id"=>"ARS", "title"=>"Example T-Shirt", "picture_url"=>"http://www.site.com/image/123.png", "description"=>"Red XL T-Shirt", "quantity"=>1, "unit_price"=>10.5}], "client_id"=>"963", "marketplace"=>"NONE"}

如何对“init_point”url进行“redirect_to”调用?

谢谢!

1 个答案:

答案 0 :(得分:1)

非常简单,只需访问该哈希键:

redirect_to result['init_point']

JSON.parse返回常规哈希。从技术上讲,说你得到“JSON保存在结果”是不准确的。你解析了 JSON并在“result”处得到了一个哈希值。

但我对此感到困惑:

result = JSON.parse(mp_data.to_json)

为什么要将数据转换为json,然后再回去解析它?为什么不直接使用mp_data,像这样?

redirect_to mp_data['init_point']