Вы можете достаточно легко выяснить, какую структуру данных будет производить этот JSON:
require 'active_support'
json = '[{
data: "basics",
attr: {},
children: [
{data: "login", attr: {run: "run"},
children: [
{data: "login", attr: {}}
]
} ,
{data: "Academic Year", attr: {run: "run"},
children: [
{data: "login", attr: {}},
{data: "Academic Year", attr: {filter: "mini", SOF: "yes"}}
]
}
]
}]'
puts ActiveSupport::JSON.decode(json).inspect
И тогда быстрое переформатирование вывода даст вам следующее:
[
{
"data" => "basics",
"children" => [
{
"data" => "login",
"children" => [
{
"data" => "login",
"attr" => { }
}
],
"attr" => {
"run" => "run"
}
},
{
"data" => "Academic Year",
"children" => [
{
"data" => "login",
"attr" => { }
},
{
"data" => "Academic Year",
"attr" => {
"filter" => "mini",
"SOF" => "yes"
}
}
],
"attr" => {
"run" => "run"
}
}
],
"attr" => { }
}
]
Вероятно, есть более простые способы, но вышеперечисленное поможет быстро взломать один выстрел.