在Rails中重新格式化json的最佳方法?

时间:2015-01-13 21:58:55

标签: ruby-on-rails ruby json

我正在构建的应用程序在JSON中收到一些信息,但数据组织非常糟糕。我想重建JSON输出。我收到的JSON是完全平坦的,某些东西应该嵌套。说明我的意思:

我得到的是这样的东西:

{[
 {fullname: 'Joe', session: 'A', time: '5:00', room: 'Ballroom'},
 {fullname: 'Abe', session: 'B', time: '5:00', room: 'Bathroom'},
 {fullname: 'Mike', session: 'C', time: '6:00', room: 'Bathroom'},
]}

我想要这样的事情:

   {
    rooms: [
      {
       name: 'Ballroom',
       sessions: [
        {
         title: 'A',
         speakers: [{name: 'Joe'}]
        }
       ]
      },
      {
       name: 'Bathroom',
       sessions: [
        {
         title: 'B',
         speakers: [{name: 'Abe'}]
        },
        {
         title: 'C',
         speakers : [{name: 'Mike'}]
        }
       ]
      }
    ]
   }

是否有任何宝石可以做这样的事情?应用程序的特定部分是否应该按照MVC进行操作?

我应该注意,所有这个应用程序都接收此JSON,然后对另一个应用程序进行API调用,以在该应用程序的数据库中创建/更新信息,以反映JSON中的内容。

2 个答案:

答案 0 :(得分:1)

使用:

JSON.pretty_generate your_hash

例如:

require 'json'
my_json = { :array => [1, 2, 3, { :sample => "hash"} ], :foo => "bar" }
puts JSON.pretty_generate(my_json)

请参阅:How can I "pretty" format my JSON output in Ruby on Rails?

答案 1 :(得分:0)

您可以使用jbuilderrabl宝石重新格式化。用法和例子在他们的自述文件中非常直接