Ruby on rails 如何访问在rails中解码后呈现的值?
我如何从下面显示的json访问年份,我从url获取并使用 obj=ActiveSupport::JSON.decode(response.body) 下面是我解码后得到的响应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
{
"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