Ruby on rails 用ruby解析JSON
我有一个问题,当我像这样解析文件时,所有的工作都正常 {StumbleUpon:0,Reddit:0,Facebook:{total_count:19227,comment_count:0,share_count:19227},LinkedIn:27} 我的代码: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
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
你能用挖掘法吗?您的数据结构高度不一致,难以使用。我升级了代码,让它更偏执。