Ruby on Rails JSON.parse意外令牌错误

时间:2011-02-27 01:31:36

标签: json ruby-on-rails-3

我正在尝试使用JSON.parse解析Rails 3应用程序中的JSON数据。我一直收到这个错误:

  737:意外的令牌在   “{\ “0 \”:{\ “类\”:\ “窗口\”,\ “文本\”:\ “测试\”,\ “样式\”:\“的位置:   绝对;上:8px;左:8px;宽度:560px;身高:290px;的z-index:   0; \“}

实际的JSON要长得多,但它基本相同。

3 个答案:

答案 0 :(得分:38)

好吧,我们只能根据您向我们展示的JSON部分进行回答,但它有两个问题:

  1. 所有引号字符(")都已转义;除非它们用于双引号字符串中,否则它们不需要存在,而它们似乎不是。
  2. 您缺少一个右大括号(})。
  3. 否则它会根据https://jsonlint.com/传递。

答案 1 :(得分:11)

在我的情况下,这是一个隐藏的标签字符,只有在我将其粘贴到vim时才显示出来。

答案 2 :(得分:1)

您可以直接使用JSON.Parse() in-build方法:

content = "[{\"addon_id\":\"1\",\"addon_price\":\"5\"}]"
# OUTPUT at Console => "[{\"addon_id\":\"1\",\"addon_price\":\"5\"}]"

JSON.parse(content.gsub('\"', '"'))
# OUTPUT at Console => [{"addon_id"=>"1", "addon_price"=>"5"}]
相关问题