如何在rails中解析json响应

时间:2012-06-16 14:06:46

标签: ruby-on-rails json

第一次在Rails中使用JSON并试图弄清楚它应该是非常基本的东西。我正在使用Stripe Rails库并尝试解析并将其中一个JSON元素设置为变量。

这是我的实际尝试:

    coupon = Stripe::Coupon.retrieve(self.discount_code)
    parsed_json = ActiveSupport::JSON.decode(coupon)
    discount_amount = parsed_json["percent_off"]

此行有效:

coupon = Stripe::Coupon.retrieve("save50percent")

在控制台中运行“puts coupon”会显示JSON字符串

JSON:{“id”:“test50”,“duration”:“once”,“duration_in_months”:null,“livemode”:false,“max_redemptions”:null,“object”:“coupon”,“percent_off “:50,”redeem_by“:null,”times_redeemed“:0}

但是试图跑:

parsed_json = ActiveSupport::JSON.decode(coupon)

导致以下错误:

TypeError: can't convert Stripe::Coupon into String

我甚至没有尝试解析JSON中的值 - 我确信我接近了错误。

由于

2 个答案:

答案 0 :(得分:3)

您的错误消息说明了一切:couponStripe::Coupon,而不是String。尝试使用可用的to_json method

答案 1 :(得分:-1)

我认为优惠券不是一个看起来像JSON的字符串,但在打印时看起来像是一个。尝试解码它的字符串表示。我不确定这个代码(我不是一个RoR程序员),但是我看到了很多类似的情况......