Guest User

Untitled

a guest
May 22nd, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. (eval):1: syntax error, unexpected end-of-input, expecting '}' {:redirect=>true ^
  2.  
  3. begin
  4. hash = eval(string)
  5. rescue SyntaxError
  6. # It's not valid
  7. end
  8.  
  9. def valid_hash?(string)
  10. eval(string).is_a?(Hash)
  11. rescue SyntaxError
  12. false
  13. end
  14.  
  15. string = "{:key=>true}"
  16. valid_hash?(string)
  17. #=> true
  18. string = "I am not hash"
  19. valid_hash?(string)
  20. #=> false
  21.  
  22. string1 = "{:key_1=>true,key_2:false}"
  23. string2 = "{:key=>true}"
  24. string3 = "no hash"
  25.  
  26. def valid_hash?(string)
  27. begin
  28. string = string.gsub(/(w+):s*([^},])/, '"1":2')
  29. #=> "{:key_1=>true,"key_2":false}"
  30. string = string.gsub(/:(w+)s*=>/, '"1":')
  31. #=> "{"key_1":true,"key_2":false}"
  32. my_hash = JSON.parse(string, {symbolize_names: true})
  33. #=> {:key_1=>true, :key_2=>false}
  34. my_hash.is_a? Hash # or do whatever you want with your Hash
  35. rescue JSON::ParserError
  36. false
  37. end
  38. end
  39.  
  40. valid_hash? string1
  41. #=> true
  42. valid_hash? string2
  43. #=> true
  44. valid_hash? string3
  45. #=> false
Add Comment
Please, Sign In to add comment