【问题标题】:How to handle JSON parser errors in ruby如何处理 ruby​​ 中的 JSON 解析器错误
【发布时间】:2015-03-12 16:51:03
【问题描述】:

如果响应正文不是 JSON,我如何避免解析 JSON,否则它会引发我想要处理的巨大异常

      def execute_method(foo)
...

        response = self.class.get("/foo.php", query: query)
        JSON.parse(response.body)
      end

【问题讨论】:

  • 我不想解析,想在解析前先了解一下。我该怎么做?

标签: ruby json


【解决方案1】:

正如@Anthony 指出的,使用 begin/rescue。

begin
  ...
  JSON.parse(response.body)
rescue JSON::ParserError
  # Handle error
end

更新

要检查一个字符串是否是一个有效的json,你可以创建一个方法:

def valid_json?(string)
  !!JSON.parse(string)
rescue JSON::ParserError
  false
end

valid_json?("abc") #=> false
valid_json?("{}") #=> true

【讨论】:

  • 我不想解析,想在解析前先了解一下。我该怎么做?
  • @Rpj 我添加了一个方法来检查 string 是否是一个有效的 json。除了尝试成功解析之外,我认为没有其他方法可以绝对确定。
猜你喜欢
  • 2017-10-09
  • 2012-12-13
  • 2012-06-11
  • 1970-01-01
  • 1970-01-01
  • 2016-02-07
  • 1970-01-01
  • 2019-04-02
  • 1970-01-01
相关资源
最近更新 更多