source

구문 분석하기 전에 문자열이 유효한 json인지 확인하시겠습니까?

factcode 2023. 3. 20. 23:38
반응형

구문 분석하기 전에 문자열이 유효한 json인지 확인하시겠습니까?

Ruby에서 문자열을 해석하기 전에 유효한 json인지 확인할 수 있는 방법이 있습니까?

예를 들어 다른 URL에서 정보를 가져오거나 json을 반환하거나 잘못된 응답을 반환할 수 있습니다.

내 코드:

def get_parsed_response(response)
  parsed_response = JSON.parse(response)
end

체크하는 방법을 작성할 수 있습니다.

def valid_json?(json)
  JSON.parse(json)
  true
rescue JSON::ParserError, TypeError => e
  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

좀 더 짧은 변종을 제안해 드리겠습니다.

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

> valid_json?("test")
=> false

> valid_json?("{\"mail_id\": \"999129237\", \"public_id\": \"166118134802\"}")
=> true

언급URL : https://stackoverflow.com/questions/26232909/checking-if-a-string-is-valid-json-before-trying-to-parse-it

반응형