检查JSON是否有密钥的正确方法是什么?

时间:2016-07-06 14:32:37

标签: ruby-on-rails json ruby-on-rails-4 key

我正在使用Rails 4.2.3。我有这个代码应该解析JSON

my_object_id = my_object.key?("id") ? my_object['id'] : nil

但是当“my_object”JSON是'[“name”,“Info”]'时,我收到以下错误

undefined method `key?' for ["name", "Info"]:Array

检查我的JSON是否有“id”键的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用 has_key 方法。

my_object_id = my_object.has_key?("id") ? my_object['id'] : nil

在旁注中,您始终可以通过在控制台中运行 object.methods 来检查任何对象的可用方法列表。

答案 1 :(得分:0)

正如@Pramod所指出的那样,你似乎对数组中的哈希感到困惑。

您可以执行以下操作,这意味着当SELECT songs.id, songs.song, songs.artist, ROUND(AVG(score.score), 1) AS 'score' FROM songs LEFT JOIN score ON score.id = songs.id GROUP BY songs.id ORDER BY score DESC 的类型正确时,它只会尝试检索id

my_object

然而,这种条件的需要可能表明您的设计中的其他地方存在弱点,因为您无法确定 my_object_id = (my_object.is_a?(Hash) && my_object.key?("id")) ? my_object['id'] : nil 的类型。