Ответ 1
Вы можете создать метод для проверки:
def valid_json?(json)
JSON.parse(json)
return true
rescue JSON::ParserError => e
return false
end
В Ruby существует ли способ проверить правильность строки json, прежде чем пытаться ее проанализировать?
Например, получение некоторой информации из некоторых других URL-адресов, иногда она возвращает json, иногда она может возвращать мусор, который не является допустимым ответом.
Мой код:
def get_parsed_response(response)
parsed_response = JSON.parse(response)
end
Вы можете создать метод для проверки:
def valid_json?(json)
JSON.parse(json)
return true
rescue JSON::ParserError => e
return false
end
Вы можете разобрать его таким образом
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
Я думаю, что parse_json
должен вернуть nil
если он недействителен и не должен выдавать ошибку.
def parse_json string
JSON.parse(string) rescue nil
end
unless json = parse_json string
parse_a_different_way
end