首页 > 解决方案 > 访问散列中的值

问题描述

服务器正在接收以下 JSON 对象。该操作还记录了对象的性质

Update: {"update_id":589695627,"message":{"message_id":190,"from":{"id":3241,first_name":"Bob","username":"Bobby B","language_code":"en"},"date":1592897101,"text":"/activate NjElMV8yMTkuMTkuNDU="}}
Rails.logger.info update.is_a? Hash
json = update.to_json
Rails.logger.info json.is_a? String

is_a记录器对两个查询都返回 true 。
生成的 json 字符串与收到的语句相同,保存Update 前缀。

一个提取物如何message.from.username立即从散列中说出(因为运行 json 处理循环似乎也很过载)?

标签: ruby-on-railsjson

解决方案


您可以尝试使用Hash#dig

update = {"update_id":589695627,"message":{"message_id":190,"from":{"id":3241,"first_name":"Bob","username":"Bobby B","language_code":"en"},"date":1592897101,"text":"/activate NjElMV8yMTkuMTkuNDU="}}
update.dig(:message, :from, :username) # "Bobby B"

推荐阅读