将 JSON 键转换为符号

Rol*_*rov 4 api json ruby-on-rails

我对 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
Run Code Online (Sandbox Code Playgroud)

当前输出只是一个 JSON 字符串。我该如何解析这个?

Flowers99.0Guitar10.99Love20.0Penguin500.0Koala1000.0[...]
Run Code Online (Sandbox Code Playgroud)

超文本标记语言

= @products.each do |product|
    tr
      td = product.name
      td = product.price
Run Code Online (Sandbox Code Playgroud)

rex*_*den 6

使用symbolize_namessymbolize_keyssymbolize_keys是一个 Rails 方法。

具体方法如下:

JSON.parse(@products, symbolize_names: true)
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息,请参阅:

JSON解析

ActiveSuport::Hash#symbolize_keys