带有键的哈希数组的Rails字符串-转换为哈希数组

时间:2019-02-16 19:19:46

标签: ruby-on-rails ruby

我有一个字符串,该字符串是通过API响应通过ajax调用传递的(我无法在发送到Rails之前更改数据,因为它是用视图中的jQuery完成的)

str = '{"0"=>{"firstName"=>"Testing", "lastName"=>"It", "email"=>"test@example.com"}, "1"=>{"firstName"=>"Tester", "lastName"=>"You", "email"=>"test2@example.com"}}'

我想将其解析为哈希的红宝石数组。

使用JSON进行最逻辑的解析失败:

JSON.parse(str)
  

JSON :: ParserError(765:'{“ 0” => {“ firstName” =>“ Testing”,“ lastName” =>“ It”,“ email” =>“ testing@example.com上的意外令牌“},” 1“ => {” firstName“ =>” Tester“,” lastName“ =>”您“,”电子邮件“ =>” test2@example.com“}}')

任何想法如何优雅解析而无需gsub或split。也许以某种方式将字符串转换为哈希格式的Ruby数组?

2 个答案:

答案 0 :(得分:2)

由于这是红宝石哈希,因此可以使用eval

hash = eval(str)

答案 1 :(得分:0)

感谢Hayden指出这一点!实际上,我传递的是无效的JSON,因为我传递的是对象而不是JSON。通过使用JSON.stringify

从视图传递数组对象来解决