【问题标题】:How to save JSON objects into an array如何将 JSON 对象保存到数组中
【发布时间】:2017-04-23 09:08:50
【问题描述】:

我想将对象保存到数组中。我有 JSON 对象,我想将每个对象保存在一个数组中以单独访问每个元素。 有人可以帮帮我吗?

toArray = JSON.parse(res.body)

categ = Array.new
i = 0

toArray.each do |object|
newMyObject = MyObject.new(object)
categ = Array.new(i, newMyObject)
i = i+1
end

【问题讨论】:

  • 感谢您的评论。我怎样才能做到这一点?我必须稍后访问 json 中的每个元素。
  • 请注意,Ruby 强烈建议仅使用小写的变量和方法名称,因此此处应使用to_array。大写字母保留给ClassNameCONSTANT_NAME 情况。

标签: arrays json ruby web


【解决方案1】:

试试这个

array_from_json = JSON.parse(res.body)
objects_array = array_from_json.map { |item| MyObject.new(item) }

代码中的问题是每次迭代都创建一个新数组。

【讨论】:

  • 谢谢。你能解释一下,代码到底是做什么的吗?
  • 可能你不知道map 方法。这允许您转换数组的每个元素并返回一个新数组。在这种情况下,我们将每个元素从 json 转换为 MyObject 对象,结果在 objects_array 数组对象中。
  • 我收到错误:“未初始化的常量 MyObject (NameError) 你的意思是?来自 test:51:in each' from test:51:in map' 的对象来自 test:51:in `
    '”你能请帮帮我?
  • 嗯,我不知道。我在你的代码中看到了这一点。我虽然你定义了一个 MyObject 类。
  • 我该怎么做?你能帮帮我吗?
猜你喜欢
  • 2017-06-09
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
  • 2018-07-30
  • 1970-01-01
相关资源
最近更新 更多