ruby-on-rails-3 - 在多级 JSON 数据的 Rails 数组中使用 has_key

标签 ruby-on-rails-3 json multidimensional-array

我有一组具有多个数据级别的 JSON 数据。 JSON 片段(请忽略缺少的格式):

DATA SET A:
"interaction": {
   "author": {
      "username": "johndoe",
      "name": "John Doe"
   }
},
"gender": "male"

DATA SET B:
"interaction": {
   "author": {
      "name": "Jane Doe"
   }
},
"gender": "male"

在单级中我可以使用:

if record.has_key?('gender')

如果 key 存在,将返回 true/false 值。

如果我尝试播种数据但 key 不存在,则会抛出错误并停止播种。

我的问题:如何检查“用户名”键是否存在。例如,数据集 B 没有用户名 key ,会引发错误,但我不知道如何修改 has_key() 命令来检查下几个级别。

感谢您的帮助。

最佳答案

我决定解决 has_key 方法并使用 begin/rescue/end。

begin
  @data.username = record['interaction']['author']['username']
rescue
  @data.username = nil
end

关于ruby-on-rails-3 - 在多级 JSON 数据的 Rails 数组中使用 has_key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12112989/

相关文章:

ruby-on-rails - 何时在连接表上设置没有主键的表

ruby-on-rails - Rails PaperClip 附件,知道是否有图像缩略图?

c++ - C++ 中的二维锯齿状数组到一维数组

ruby-on-rails - Rails3 - CanCan - 未初始化的常量Ability::Page

javascript - 遍历对象并返回匹配的键/值

java - 通过带有 JSON 响应的关键字搜索 Shopify 产品

python - 防止 JSON 序列化在 Python 中抛出异常

java - 将两个一维数组转换为单个二维数组

c - 如何创建一个空数组来存储根据 C 程序给定计算得出的值

ruby-on-rails - "bundle update"会更新系统上的所有 gem 还是只更新 Gemfile 中的 gem?