将JSON密钥转换为符号

时间:2015-03-02 18:43:08

标签: ruby-on-rails json api

我是API主题的新手。我已经从API中显示了JSON,阅读了大量的文档,我理解了如何将JSON密钥转换为ruby符号的想法,但我不明白如何实际执行它。我试过......

1)使用法拉第的方式。
2)使用JSON.parse
3)使用symbolize_keys:true

......和其他东西。

我的代码现在看起来像什么。我还评论了我尝试过的方式,所以你可以看到。

class ProductsController < ApplicationController

require 'json'

  def index
    @products = Product.find(:all)   # GET 'http://api.example.com/store/products.json'

    products = Faraday.new(:url => 'http://api.example.com') do |faraday|
     faraday.request :url_encoded
     faraday.response :logger
     faraday.adapter Faraday.default_adapter
    end

   #GET

    response = products.get '/store/products.json'
    response.body

    products.get '/store', { :name => 'Koala' }

    # @products = JSON.parse(@products, symbolize_keys: true)

  end
end

当前输出只是一个JSON字符串。我怎么解析这个?

Flowers99.0Guitar10.99Love20.0Penguin500.0Koala1000.0[...]

HTML

= @products.each do |product|
    tr
      td = product.name
      td = product.price

1 个答案:

答案 0 :(得分:3)

使用symbolize_names而不是symbolize_keyssymbolize_keys是Rails方法。

方法如下:

JSON.parse(@products, symbolize_names: true)

有关更多信息,请参见:

JSON.parse

ActiveSuport::Hash#symbolize_keys