Ruby on rails 用ruby解析JSON

Ruby on rails 用ruby解析JSON,ruby-on-rails,Ruby On Rails,我有一个问题,当我像这样解析文件时,所有的工作都正常 {StumbleUpon:0,Reddit:0,Facebook:{total_count:19227,comment_count:0,share_count:19227},LinkedIn:27} 我的代码: module SocialShares class Sharedcount < Base def shares! response = RestClient.get(url) JSON.par

我有一个问题,当我像这样解析文件时,所有的工作都正常

{StumbleUpon:0,Reddit:0,Facebook:{total_count:19227,comment_count:0,share_count:19227},LinkedIn:27}

我的代码:

module SocialShares
  class Sharedcount < Base
    def shares!
      response = RestClient.get(url)
      JSON.parse(response)['Facebook']["share_count"] || 0
    end

  private

    def url
      "https://free.sharedcount.com/?url=#{checked_url}&apikey=#{Rails.application.secrets.socialshared_api_key}"
    end
  end
end
当我解析这个时,我有一个错误TypeError:没有将字符串隐式转换为整数

文件:
{StumbleUpon:0,Reddit:0,Facebook:0,LinkedIn:0}

第二个结构没有必要的结构来导航。您需要更加谨慎地处理此问题:

def shares!
  response = RestClient.get(url)

  data = JSON.parse(response)

  data['Facebook'].is_a?(Hash) && data['Facebook']["share_count"] || 0
end
您也可以在Ruby 2.4或更高版本中执行此操作:

  data.dig('Facebook', 'share_count').to_i
你能用挖掘法吗?您的数据结构高度不一致,难以使用。我升级了代码,让它更偏执。