2012-01-03 8 views
-1

私はこの次のコードをしている:私は、次のような何かをどのようにRubyのハッシュ、エンコーディング

{ 
    "coloring" :[], 
    "columns" : ["GROUPNAME", "WAGNAME", "PREDICATEACTIONNAME", "LOCATIONTIME", "ADDRESS"], 
    "end_date" : {}, 
    "event_type" : null 
    "exclusive_group_name" : null 
    "mode" : "alerts_detail_report" 
    "page_length" : 50 
    "scope_kind" : "enterprise_group" 
    "scope_value" : 14553 
    "scope_values" : {"enterprise_group": 14553} 
    "sort" :[["WAGNAME", false], ["LOCATIONTIME", false]] 
    "start" : 0 
    "start_date" : {"snap_unit": "day", 
    "snap_direction": "beginning"} 
    "time_zone" : "EST" 
} 

を作る:ハッシュの

start=0&page_length=50&exclusive_group_name=null&event_type=null&mode=%22alerts_detail_report%22&scope_kind=%22enterprise_group%22&scope_value=14553&scope_values=%7B%22enterprise_group%22%3A%2014553%7D&start_date=%7B%22snap_unit%22%3A%20%22day%22%2C%20%22snap_direction%22%3A%20%22beginning%22%7D&end_date=%7B%7D&time_zone=%22EST%22&columns=%5B%22GROUPNAME%22%2C%20%22WAGNAME%22%2C%20%22PREDICATEACTIONNAME%22%2C%20%22LOCATIONTIME%22%2C%20%22ADDRESS%22%5D&coloring=%5B%5D&sort=%5B%5B%22WAGNAME%22%2C%20false%5D%2C%20%5B%22LOCATIONTIME%22%2C%20false%5D%5D 

1)右辺は

+0

ここでの質問は何ですか?これまでに何を試してみる必要がありますか? – Howard

+0

ハッシュの各要素を調べ、要素のキーを出力文字列変数に追加し、次にa =記号、次にエンコードされたキー値を追加する必要があります。あなたの質問を編集し、あなたがどれだけ得たかをお知らせください。これまでのところ、入力と出力だけでなく、あなたのソフトウェアを見せてください。 –

+0

これまではすべてをハッシュで入れようとしました。セミコロンで構文が不平を言っていました。私の最初の挑戦はハッシュを作成し、2番目のチャレンジはstart_dateのような値で、それには別の配列があります。 – user1090044

答えて

2

ハッシュ符号化されますは壊れてます。

hsh = { 
    "coloring" => [], 
    "columns" => ["GROUPNAME", "WAGNAME", "PREDICATEACTIONNAME", "LOCATIONTIME", "ADDRESS"], 
    "end_date" => {}, 
    "event_type" => nil, 
    "exclusive_group_name" => nil, 
    "mode" => "alerts_detail_report", 
    "page_length" => 50, 
    "scope_kind" => "enterprise_group", 
    "scope_value" => 14553, 
    "scope_values" => {"enterprise_group"=> 14553}, 
    "sort" =>[["WAGNAME", false], ["LOCATIONTIME", false]], 
    "start" => 0, 
    "start_date" => {"snap_unit"=> "day", "snap_direction"=> "beginning"}, 
    "time_zone" => "EST" 
} 

を今すぐクエリ文字列を構築する:

require 'uri' 
hsh.map { |k, v| "#{k}=#{URI::encode v.inspect}" }.join('&') 

これはあなたに実行可能なクエリ文字列を取得する必要がありますここで動作するものです。あなたが質問で提示したエンコーディングとは違って見えます。