нужно разобрать строку в формате json - PullRequest
0 голосов
/ 09 декабря 2011

У меня есть следующая строка, чтобы проанализировать как JSON и отправить как сообщение запроса. не уверен, что это лучший способ сделать это:

* Тысяча два * начать = 0 & page_length = 50 & exclude_vehicle_category =% 5B% 5D & toll_non_toll = ложь и режим =% 22detail_state_mileage_report% 22 & scope_kind =% 22enterprise_group% 22 & scope_value = 4317 & scope_values ​​=% 7B% 22enterprise_group% 22% 3A% 204317% 7D & дата_начала =% 7B% 22snap_unit% 22% 3A% 20% 22day% 22% 2C% 20% 22snap_direction% 22% 3A% 20% 22beginning% 22% 7D & дата_окончания =% 7B% 7D & TIME_ZONE =% 22EST% 22 & столбцы =% 5B% 22GROUPNAME% 22% 2C% 20% 22VEHICLEID% 22% 2C % 20% 22VEHICLENAME% 22% 2C% 20% 22VEHICLETAG% 22% 2C% 20% 22VEHICLE_VIN% 22% 2C% 20% 22TOTAL_DISTANCE_DRIVEN% 22% 2C% 20% 22TOTAL_DISTANCE_DRIVEN_OH% 22% 5D & окраска =% 5B% 5D & рода =% 5B% 5B % 22GROUPNAME% 22% 2C% 20false% 5D% 2C% 20% 5B% 22VEHICLEID% 22% 2C% 20false% 5D% 5D

Ответы [ 2 ]

2 голосов
/ 09 декабря 2011

Скажите s содержит вашу строку:

hash = {}   
s.split("&").each do |key_value|
  key, value = key_value.split("=")
  hash[key.to_sym] = value
end
hash.to_json
0 голосов
/ 09 декабря 2011
Rack::Utils.parse_query(s)
=> {"start"=>"0",
    "page_length"=>"50",
    "exclude_vehicle_category"=>"[]",
    "toll_non_toll"=>"false",
    "mode"=>"\"detail_state_mileage_report\"",
    "scope_kind"=>"\"enterprise_group\"",
    "scope_value"=>"4317",
    "scope_values"=>"{\"enterprise_group\": 4317}",
    "start_date"=>"{\"snap_unit\": \"day\", \"snap_direction\": \"beginning\"}",
    "end_date"=>"{}",
    "time_zone"=>"\"EST\"",
    "columns"=>"[\"GROUPNAME\", \"VEHICLEID\", \"VEHICLENAME\", \"VEHICLETAG\", \"VEHICLE_VIN\", \"TOTAL_DISTANCE_DRIVEN\", \"TOTAL_DISTANCE_DRIVEN_OH\"]",
    "coloring"=>"[]",
    "sort"=>"[[\"GROUPNAME\", false],[\"VEHICLEID\", false]]"
   } 
...