1

以下は、javascriptに渡す最後のjsonのサンプルです。(yajl)rubyライブラリを使用して、ハッシュからこのjsonを作成します。

問題は、以下のjsonを生成するルビーハッシュはどのように見えるべきかということです。

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の前後にコードを(正確に)コピーします;
  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構造とは何ですか?

もしそうなら、ここに行きます.... JSON基本レベル構造も配列であるため、基本レベル構造はRuby配列であることに注意してください。

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 に答える