【问题标题】:Convert Array of Arrays into JSON将数组数组转换为 JSON
【发布时间】:2016-02-28 09:04:25
【问题描述】:

我有一个数组数组,我想将其转换为 json 并在另一个数组中输出。我有以下数组:

weekdays = [["Monday",2],["Tuesday",4],["Thursday",5]]

我想在 JSON 输出中包含这个数组,如下所示:

json_output = { :results => weekdays.count, :data => weekdays }

现在我明白了,它看起来不正确,因为“数据”字段周围没有大括号......

{
    "results": 2,
    "data": [
        ["Monday", 2],
        ["Tuesday", 4],
        ["Thursday", 5]
    ]
}

任何帮助都会很棒!

【问题讨论】:

标签: arrays ruby json


【解决方案1】:

输出是正确的。大括号在散列周围,但您的数据属性是嵌套数组。

如果要将嵌套数组转换为哈希,只需调用to_h即可:

{ :results => weekdays.count, :data => weekdays.to_h }

【讨论】:

  • 啊,所以如果我想让它像大多数 JSON 一样,我需要先将它转换为哈希并分配键 - 然后我可以像上面一样包含它?
  • 超级有帮助,哇 - 谢谢!相关评论,我是否应该为“数据”中的每个元素添加标签,我需要创建哈希而不是数组吗?
  • 是的,使用哈希可以更轻松地添加更多属性。
  • @Brandon 如果您的数据是按键值对组织的,则首先不应使用数组。这就是哈希的用途。
【解决方案2】:

最好手动将其转换为哈希。

weekdays = [["Monday",2],["Tuesday",4],["Thursday",5]]

hash_weekdays = Hash.new
weekdays.each do |item|
 hash_weekdays[item[0]] = item[1]
end

hash_weekdays #=> {"Monday"=>2, "Tuesday"=>4, "Thursday"=>5}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-23
    • 2014-10-10
    • 2011-08-02
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多