Konwersja STRING to HASH

Hej,

jak przekonwertowac taki STRING

"{\"startDateTime\":\"2016-02-08T00:00Z\",\"timeZone\":{\"text\":\"(GMT) Monrovia, Reykjavik\",\"selected\":true,\"offset\":\"+00:00\",\"name\":\"Greenwich Standard Time\"},\"recurrencePattern\":\"FREQ=MINUTELY;INTERVAL=1;UNTIL=20160211\"}"

na HASH:

{startDateTime: '2016-02-08T00:00Z', timezone: { text: 'GMT) Monrovia, Reykjavik' } ...}

Uzycie JSON.parse(string, symbolize_names: true) zwroci:

{:startDateTime=>"2016-02-08T00:00Z", :timeZone=>{:text=>"(GMT) Monrovia, Reykjavik", :selected=>true, :offset=>"+00:00", :name=>"Greenwich Standard Time"}, :recurrencePattern=>"FREQ=MINUTELY;INTERVAL=1;UNTIL=20160211"} 

Z gory dziekuje za pomoc

Ten zapis, którego oczekujesz, i ten który dostajesz są równoznaczne. Po prostu konsola wyplówa CI stary sposób zapisu hasha.

Wiem, ze sa jednoznaczne, niestety musze uzyc format Hashu ktory podalem i ktory chcialbym uzyskac po konwersji w funkcji Javascript ktora akceptuje taki format. Przy drugim formacie funkcja ta nie dziala.

Coś mi to wygląda na rozwiązanie bardzo nie rails-way.
Możesz wkleić kawałek kodu?

A po co w ogóle parsujesz ten string w Rubym, jak i tak ślesz to do klienta, który zapewne oczekuje JSON-a?

Mam wrażenie, że dostajesz po prostu json jako string i chcesz mieć z tego hash. Spróbuj użyć metody JSON.parse.

require "json"

str = "{\"startDateTime\":\"2016-02-08T00:00Z\",\"timeZone\":{\"text\":\"(GMT) Monrovia, Reykjavik\",\"selected\":true,\"offset\":\"+00:00\",\"name\":\"Greenwich Standard Time\"},\"recurrencePattern\":\"FREQ=MINUTELY;INTERVAL=1;UNTIL=20160211\"}"

puts JSON.parse(str)
{"startDateTime"=>"2016-02-08T00:00Z", "timeZone"=>{"text"=>"(GMT) Monrovia, Reykjavik", "selected"=>true, "offset"=>"+00:00", "name"=>"Greenwich Standard Time"}, "recurrencePattern"=>"FREQ=MINUTELY;INTERVAL=1;UNTIL=20160211"}

Dzieki,

jak slusznie zauwazyl Lypa nie jest konieczna konwersja. Przesylam to jako string bez parsowania i bez problemu funkca Javascript dziala.

Dzieki za pomoc,
Pozdrawiam