什么是生成json的哈希结构?

下面是我传递给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"}} ] } ] }]; 

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

如果是这样,那么你去….注意,基本级结构是一个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"} }] }] }] 
  1. var和之前复制代码(确切地) ;
  2. 粘贴到Ruby(1.9+)
    此时你已经完成了。 certificate它……
  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"}} #=> ]} #=> ]}] 

您可以很容易地找到自己能够轻松生成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" => { } } ] 

有可能更简单的方法,但上面将快速一次性黑客。

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