Ruby使用JSON GEM从嵌套的JSON响应中获取值



我有这样的JSON响应:

@response = {"result":{"amount":0.0}}

如何将金额的价值获取到变量?

我尝试过:

@response['result']['amount']
@response['result'][0] 
@response[0][0] 

我正在使用JSON GEM。

尝试此

@response[:result][:amount]

@response对象中的密钥是:symbols不是strings

有关更多信息:Ruby中的字符串和符号有什么区别?

带有嵌套散列的ruby的 Hash#dig方法非常方便,因为如果任何中间步骤为nil,它将返回零。

@response.dig(:result, :amount)

如果不确定是键字符串或符号,则可以使用ActiveSupport :: HashWithIndifferentAccess提供Hash#with_indifferent_access(默认情况下将包括此)。然后,您可以使用符号和字符串格式的键获得值。

最新更新