【问题标题】:How can I iterate a JSON object in a rails controller?如何在 Rails 控制器中迭代 JSON 对象?
【发布时间】:2019-03-15 14:02:00
【问题描述】:

我将以下数据集以 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

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

【问题讨论】:

标签: ruby-on-rails json


【解决方案1】:

尝试使用 JSON.parse :)

arr = JSON.parse params["_json"]

【讨论】:

    【解决方案2】:

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

    不需要解析,谢谢 :)

    【讨论】:

    • 声明:您的初始代码示例不是 JSON,而是 Ruby 哈希。 JSON 具有字符串键,而不是您的示例中的符号。一个细节,但它可能有助于解释为什么您可以直接引用它。
    猜你喜欢
    • 1970-01-01
    • 2014-05-31
    • 2017-05-21
    • 2019-07-21
    • 2022-01-23
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 2013-09-19
    相关资源
    最近更新 更多