ruby-on-rails - JSON::ParserError: 757: '{ 处的意外标记

标签 ruby-on-rails ruby json

当前哈希是

{\"report_name\"=>\"Study/Control: ABIRATERONE ACETATE - 20151413355\", \"left_mue_start_date\"=>\"02-26-2015\", \"left_mue_end_date\"=>\"03-19-2015\", \"right_mue_start_date\"=>\"02-26-2015\", \"right_mue_end_date\"=>\"03-19-2015\", \"report_formulary_id\"=>\",7581\", \"mue\"=>\"true\", \"mue_type\"=>\"study/control\", \"chain_id\"=>\"1\", \"left_mue_formulary_ids\"=>[\"7581\"], \"action\"=>\"create_report\", \"controller\"=>\"informatics\", \"user_id\"=>339}

现在我需要将它转换为适当的散列

{"report_name" => "Study/Control: ABIRATERONE ACETATE - 20151413355"}

所以我试图用 JSON.parse 获取它,但我收到如下错误:

JSON::ParserError: 757: unexpected token at '{

如果有人知道,请帮助我。 我正在使用 Rails 3.2

最佳答案

您拥有的是打印为字符串的散列。要将其转换为哈希,请使用 eval .

ch = "{\"report_name\"=>\"Study/Control: ABIRATERONE ACETATE - 20151413355\", \"left_mue_start_date\"=>\"02-26-2015\", \"left_mue_end_date\"=>\"03-19-2015\", \"right_mue_start_date\"=>\"02-26-2015\", \"right_mue_end_date\"=>\"03-19-2015\", \"report_formulary_id\"=>\",7581\", \"mue\"=>\"true\", \"mue_type\"=>\"study/control\", \"chain_id\"=>\"1\", \"left_mue_formulary_ids\"=>[\"7581\"], \"action\"=>\"create_report\", \"controller\"=>\"informatics\", \"user_id\"=>339}"
hash = eval(ch)
# => {"report_name"=>"Study/Control: ABIRATERONE ACETATE - 20151413355", "left_mue_start_date"=>"02-26-2015", "left_mue_end_date"=>"03-19-2015", "right_mue_start_date"=>"02-26-2015", "right_mue_end_date"=>"03-19-2015", "report_formulary_id"=>",7581", "mue"=>"true", "mue_type"=>"study/control", "chain_id"=>"1", "left_mue_formulary_ids"=>["7581"], "action"=>"create_report", "controller"=>"informatics", "user_id"=>339} 

PS:一个 JSON 字符串应该如下所示,这意味着你拥有的不是 JSON,因此你得到了 JSON::ParserError 因为在非字符串上使用 JSON.parse -JSON 字符串:

"{\"report_name\":\"Study/Control: ABIRATERONE ACETATE - 20151413355\",\"left_mue_start_date\":\"02-26-2015\",\"left_mue_end_date\":\"03-19-2015\",\"right_mue_start_date\":\"02-26-2015\",\"right_mue_end_date\":\"03-19-2015\",\"report_formulary_id\":\",7581\",\"mue\":\"true\",\"mue_type\":\"study/control\",\"chain_id\":\"1\",\"left_mue_formulary_ids\":[\"7581\"],\"action\":\"create_report\",\"controller\":\"informatics\",\"user_id\":339}" 

关于ruby-on-rails - JSON::ParserError: 757: '{ 处的意外标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29047089/

相关文章:

ruby-on-rails - Gmaps4Rails 中的标记样式

json - 如何在 vuejs 中将 JSON 对象发布到 Web 服务器?

ruby-on-rails - Ruby 条件语句

ruby-on-rails - 在 ruby​​ on Rails 中放置生成报告的所有逻辑的最佳位置是什么?

javascript - Rails 表单和对不同 Controller 的自定义 Ajax 调用

ruby - 跳过正则表达式中的字符

mysql - 在 rails 4 中包含、加入和选择

c# - 有没有办法为每个对象编写自定义 JsonConverter

c++ - Casablanca C++ REST SDK 中 web::json::value::parse 和 web::json::value::string 的区别

mysql - 在 activerecord 中可能使用连接将两个 SQL 查询减少为一个