繁体   English   中英

如何在 Rails 控制器中迭代 JSON 对象?

[英]How can I iterate a JSON object in a rails controller?

我将以下数据集以 JSON 格式传递给我的控制器:

[
    {id: 0, exercises: [15, 18]},
    {id: 1, exercises: [33, 35]} 
]

这是在我的控制器中收到的,我必须按照以下代码临时显示它:

arr = params["_json"]
binding.pry

这在 pry 控制台中为我提供了以下输出:

[3] pry(#<ProgramsController>)> arr
=> [<ActionController::Parameters {"id"=>0, "exercises"=>[16, 7, 18]} permitted: false>,
<ActionController::Parameters {"id"=>1, "exercises"=>[14, 15]} permitted: false>]

然后我可以通过 arr[0] 和 arr[1] 来迭代它,但是我如何获得这些索引中的练习呢?

所以我可以做这样的事情。

arr.each do |x|
  prog = Program.create(x ...)
  x.each do |exercise|
    prog.exercises.create(exercise_id: exercise.id)
  end
end

希望有人可以帮助我处理这些数据。 谢谢!

尝试使用 JSON.parse :)

arr = JSON.parse params["_json"]

解决方案非常简单:arr[0]["exercises"]

无需解析,谢谢 :)

在 Rails 中迭代 JSON。 尝试以下操作:

<ul>
arr.each do |a|
   <li><%= a[id] %></li>
   <li><%= a[exercises] %></li>
end
</ul>

或者

你也可以试试

@result = JSON.parse(HTTParty.get(your_url).body)
@result["arr"].each do |key, value|
  puts key
  puts value
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM