Ruby on rails MultiJson::DecodeError在{“电子邮件”:“处出现意外标记”;foo@bar.com";}
我正在开发一个新的RubyonRails3.2应用程序。 此应用程序将定期接收带有统计信息的json回调。 我收到的回调不完全有效。json规则由换行符分隔 回调帖子的内容类型头为application/json,每行仅包含一个json字符串,每行表示一个事件。请注意,当前的帖子标题将此帖子定义为application/json,尽管它不是;每一行都是一个有效的JSON字符串,但整个文章正文不是。例如: 这是回调的一个示例:Ruby on rails MultiJson::DecodeError在{“电子邮件”:“处出现意外标记”;foo@bar.com";},ruby-on-rails,ruby,json,api,callback,Ruby On Rails,Ruby,Json,Api,Callback,我正在开发一个新的RubyonRails3.2应用程序。 此应用程序将定期接收带有统计信息的json回调。 我收到的回调不完全有效。json规则由换行符分隔 回调帖子的内容类型头为application/json,每行仅包含一个json字符串,每行表示一个事件。请注意,当前的帖子标题将此帖子定义为application/json,尽管它不是;每一行都是一个有效的JSON字符串,但整个文章正文不是。例如: 这是回调的一个示例: {"email":"foo@bar.com","timestamp":
{"email":"foo@bar.com","timestamp":1322000095,"unique_arg":"my unique arg","event":"delivered"}
{"email":"foo@bar.com","timestamp":1322000097,"unique_arg":"my unique arg","event":"click"}
{"email":"foo@bar.com","timestamp":1322000096,"unique_arg":"my unique arg","event":"open"}
当我收到这个回调时,我的Rails应用程序崩溃并出现“MultiJson::DecodeError”
743:在“{”电子邮件“:”处出现意外令牌foo@bar.com“,“时间戳”:1322000096,“唯一参数”:“我的唯一参数”,“事件”:“打开”}”
我认为应用程序检测到application/json头并尝试自动解析它。
如何将其转换为有效的JSON对象,以便在控制器中使用
谢谢。无法通过在Rails shell中同时使用ActiveSupport::JSON.decode和MultiJson.decode复制和粘贴错误消息令牌来重现您的问题。轨道3.2.1 还有其他线索吗? gem文件中的gem'yajl ruby'和 需要gem文件中的'yajl/json_gem'config/application.rb 宝石'yajl红宝石' 它用于在流或字符串之间解析和编码多个JSON对象
并且在应用程序中需要“yajl/json_gem”。rb此问题可能是由于响应体编码为ISO-8859-1而不是UTF-8。客户端可能的修复方法是使用ruby“iconv”编码方法将其转换回UTF-8 将元素放在括号中:
[{"email":"foo@bar.com","timestamp":1322000095,"unique_arg":"my unique arg","event":"delivered"},
{"email":"foo@bar.com","timestamp":1322000097,"unique_arg":"my unique arg","event":"click"},
{"email":"foo@bar.com","timestamp":1322000096,"unique_arg":"my unique arg","event":"open"}]`
这是可行的,但我不明白为什么我一开始会出错!