Gab*_*ita 3 ruby hash https json ruby-on-rails
我正在使用HTTPparty gem在Rails应用程序中发送请求。这是一个例子:
order = HTTParty.get("https://sandbox.moip.com.br/v2/payments/#{o.payment_id}",
headers: {"Authorization" => "Basic #{encode_auth_token}"})
order_status = JSON.parse(order.body)
Run Code Online (Sandbox Code Playgroud)
变量order接收一个json作为响应。我设法检索了所需的信息,但我想使用符号而不是字符串来访问json数据。
有什么方法可以使用符号访问我的json数据吗?例如:
order_status[:link]
Run Code Online (Sandbox Code Playgroud)
剧透警报:最佳选择是#3
选项1:您可以调用.with_indifferent_access
哈希,以使用'link'
或来访问值:link
:
{'a' => 1}[:a]
# => nil
{'a' => 1}.with_indifferent_access[:a]
# => 1
{'a' => 1}.with_indifferent_access['a']
# => 1
Run Code Online (Sandbox Code Playgroud)
选项2:在散列上调用.symbolize_keys
(或.deep_symbolize_keys
如果您也要符号化嵌套键)将所有键转换为符号:
hash = { 'name' => 'Rob', 'address' => { 'postal_code' => '92210' } }
hash.symbolize_keys
# => {:name=>"Rob", :address=>{'postal_code'=>'92210'}}
hash.deep_symbolize_keys
# => {:name=>"Rob", :address=>{:postal_code=>'92210'}}
Run Code Online (Sandbox Code Playgroud)
选项3:使用symbolize_names
设置为的选项解析JSONtrue
JSON.parse(string, symbolize_names: true)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
719 次 |
最近记录: |