Dans Ruby, existe-t-il un moyen de vérifier si une chaîne est json valide avant d'essayer de l'analyser?
Par exemple, obtenir des informations à partir d'autres URL, parfois elle renvoie json, parfois elle peut renvoyer une erreur qui n'est pas une réponse valide.
Mon code:
def get_parsed_response(response)
parsed_response = JSON.parse(response)
end
Vous pouvez créer une méthode pour effectuer la vérification:
def valid_json?(json)
JSON.parse(json)
return true
rescue JSON::ParserError => e
return false
end
Vous pouvez l'analyser de cette façon
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
Je pense parse_json
doit renvoyer nil
s'il n'est pas valide et ne doit pas générer d'erreur.
def parse_json string
JSON.parse(string) rescue nil
end
unless json = parse_json string
parse_a_different_way
end