Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何访问在rails中解码后呈现的值?_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 3.2_Ruby On Rails 3.1 - Fatal编程技术网

Ruby on rails 如何访问在rails中解码后呈现的值?

Ruby on rails 如何访问在rails中解码后呈现的值?,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.2,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.2,Ruby On Rails 3.1,我如何从下面显示的json访问年份,我从url获取并使用 obj=ActiveSupport::JSON.decode(response.body) 下面是我解码后得到的响应 { "educations"=>{"_total"=>1, "values"=>[ {"id"=>18234534505, "schoolNam

我如何从下面显示的json访问年份,我从url获取并使用

obj=ActiveSupport::JSON.decode(response.body)

下面是我解码后得到的响应

{
  "educations"=>{"_total"=>1, 
                 "values"=>[
                            {"id"=>18234534505, 
                             "schoolName"=>"Test", 
                             "startDate"=>{"year"=>2013}
                            }
                           ]
                }
}
我怎样才能进入这一年?我可以访问以下值:

obj[“教育”][“价值观”]

它的反应是

{"id"=>18234534505, "schoolName"=>"Test", "startDate"=>{"year"=>2013}}
但是我怎样才能得到今年呢?请帮帮我

更新:

如何在此处添加if条件

obj[“教育”][“价值观”]。每个人都有价值观|

@用户教育=教育。新建(“开始日期”=> 值['startDate']['year'],“教育id”=>value['id'], “学校名称”=>value['schoolName'])

结束

如果没有年份,我怎么能像你说的那样检查呢?而且可能还有类似于startDate的endDate,那么我如何检查它呢?

只需按如下方式访问密钥即可

obj["educations"]["values"].first["startDate"]["year"]

# above is answer if there is always one array inside `obj["educations"]["values"]`
对于多个阵列的

year = []

obj["educations"]["values"].each do |object|
  year << object["startDate"]["year"] if !object["startDate"].blank? and !object["startDate"]["year"].blank?
end
类似地,对于任何其他属性

obj["educations"]["values"].each do |value|
  @user_education = Education.new("education_id" => value['id'], "school_name" => value['schoolName'])
  @user_education.start_date = value["startDate"]["year"] if !value["startDate"].blank? and !object["startDate"]["year"].blank?
  @user_education.save! #To save the object
end
obj["educations"]["values"].each do |value|
  @user_education = Education.new("education_id" => value['id'], "school_name" => value['schoolName'])
  @user_education.start_date = value["startDate"]["year"] if !value["startDate"].blank? and !object["startDate"]["year"].blank?
  @user_education.save! #To save the object
end