0

第一次在 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 中解析出值——我确信我的方法不正确。

谢谢

4

2 回答 2

3

您的错误消息说明了一切:coupon是 a Stripe::Coupon,而不是String. 尝试使用可用的to_json方法

于 2012-06-16T14:16:17.877 回答
-1

我会假设优惠券不是一个看起来像 JSON 的字符串,但在打印时看起来像一个字符串。尝试解码它的字符串表示。我不确定此代码(我不是 RoR 程序员),但我见过许多与您所处的情况类似的情况......

于 2012-06-16T14:15:32.050 回答