Is er in Ruby een manier om te controleren of een tekenreeks een geldige json is voordat u deze probeert te ontleden?
Bijvoorbeeld het verkrijgen van wat informatie van andere url’s, soms retourneert het json, soms kan het een rommel retourneren die geen geldige reactie is.
Mijn code:
def get_parsed_response(response)
parsed_response = JSON.parse(response)
end
Antwoord 1, autoriteit 100%
U kunt een methode maken om de controle uit te voeren:
def valid_json?(json)
JSON.parse(json)
return true
rescue JSON::ParserError => e
return false
end
Antwoord 2, autoriteit 32%
Je kunt het op deze manier ontleden
begin
JSON.parse(string)
rescue JSON::ParserError => e
# do smth
end
# or for method get_parsed_response
def get_parsed_response(response)
parsed_response = JSON.parse(response)
rescue JSON::ParserError => e
# do smth
end
Antwoord 3, autoriteit 13%
Ik denk dat parse_json
nil
moet retourneren als het ongeldig is en er geen fouten mogen optreden.
def parse_json string
JSON.parse(string) rescue nil
end
unless json = parse_json string
parse_a_different_way
end