将 Javascript 对象转换为 Ruby 哈希

vir*_*has 5 javascript ruby

我有一个这种形式的 javascript 对象

 obj = "[
   {
     title: "Sean Kingston1",
     duration: parseInt("71", 10),
   },
   {
     title: "Sean Kingston2",
     duration: parseInt("71", 10),
   },
 ]"
Run Code Online (Sandbox Code Playgroud)

有没有办法将其转换为 ruby​​ 哈希?

我尝试使用 JSON.parse 和 JSON.load
它们都抛出

 JSON::ParserError: lexical error: invalid string in json text.
                               {   title: "Sean Kingston1
                 (right here) ------^
Run Code Online (Sandbox Code Playgroud)

是否有通用的解决方案,或者我应该使用正则表达式,然后在 ruby​​ 中构造哈希?

vir*_*has 4

ruby 1.9 支持这种类似于 javascript 对象的哈希

 obj = "[
  {
   title: "Sean Kingston1",
   duration: "71",
  },
  {
   title: "Sean Kingston2",
   duration: "71",
  },
 ]"
Run Code Online (Sandbox Code Playgroud)

将其转换为 ruby​​ 哈希值

 eval(obj)
Run Code Online (Sandbox Code Playgroud)

  • 从随机网站“评估”代码时要小心! (6认同)