1

下面是我传递给 javascript 的最终 json 示例。我将使用 ( yajl ) ruby​​ 库从哈希创建这个 json。

问题是生成下面的 json的ruby​​ 哈希应该是什么样的?

var data = [{
       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"}}
          ]

         }
        ]
      }];
4

4 回答 4

4
  1. var在 the 之后和之前复制您的代码;
  2. 粘贴到 Ruby (1.9+)
    至此,您就完成了。为了证明...
  3. require "json"
  4. puts data.to_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"}}
#=>    ]}
#=> ]}]
于 2011-04-28T03:18:44.950 回答
3

你可以很容易地找出什么样的数据结构可以自己生成 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" => { }  
    } 
]

可能有更简单的方法,但上述方法可以实现快速的一次性破解。

于 2011-04-28T02:50:16.513 回答
1

你的问题不太清楚。您的意思是创建您在问题中显示的 JSON 的 Ruby 结构是什么?

如果是这样,那么你就去吧.... 请注意,基础级结构是一个 Ruby 数组,因为您的 JSON 基础级结构也是一个数组。

mydata = [{
           '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"}
                                          }]
                           }]
         }]
于 2011-04-28T02:52:47.970 回答
-1

我刚刚在我的浏览器中运行它,它似乎是有效的 JSON。那是你的问题吗?

于 2011-04-28T02:27:32.803 回答