我正在使用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”键的正确方法是什么?
答案 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
的类型。