当我尝试将某种响应解析为JSON时,我收到以下错误.如果incase解析失败,我在代码中引发了JSON :: ParserError.但是这种异常不会出现在这个解析器错误之下.我不知道为什么会抛出这种错误?以及如何解决此错误?
码:
begin
parsed_response = JSON.parse(response)
rescue JSON::ParserError => e
nil
end
Run Code Online (Sandbox Code Playgroud)
错误:
A TypeError occurred in background at 2014-11-16 03:01:08 UTC :
no implicit conversion of HTTParty::Response into String
Run Code Online (Sandbox Code Playgroud)
use*_*951 19
你得到的错误是TypeError.当你将错误的参数传递给某些方法时,它就会被提升.你可以像这样拯救它:
begin
parsed_response = JSON.parse(response)
rescue JSON::ParserError, TypeError => e
puts e
end
Run Code Online (Sandbox Code Playgroud)
不过,我不会推荐这个.你获得a的原因TypeError是JSON.parse需要一个String对象,并且你已经传递了一个HTTParty::Response对象.尝试给它一个String对象.例如:
parsed_response = JSON.parse(response&.body || "{}")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6381 次 |
| 最近记录: |