Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. use serde_json::{self, Map, Value}; // 1.0.38
  2.  
  3. fn main() {
  4. let all_type = b"
  5. {
  6. \"number\": 123,
  7. \"string\": \"abcdefg\",
  8. \"boolean\": true
  9. }";
  10. let string_only = b"
  11. {
  12. \"string1\": \"abcdefg\",
  13. \"string2\": \"abcdefg\",
  14. \"string3\": \"abcdefg\"
  15. }";
  16.  
  17. let all: Value = serde_json::from_slice(all_type).unwrap();
  18. let string: Value = serde_json::from_slice(string_only).unwrap();
  19. let flag1 = is_data_valid(&all);
  20. let flag2 = is_data_valid(&string);
  21. println!("{}", flag1);
  22. println!("{}", flag2);
  23. }
  24.  
  25. fn is_data_valid(val: &serde_json::Value) -> bool {
  26. match val.as_object() {
  27. Some(map) => {
  28. for key in map.keys() {
  29. if !is_data_valid(&map[key]) {
  30. return false;
  31. }
  32. }
  33. },
  34. None => {
  35. match val.as_str() {
  36. Some(str_val) => true,
  37. None => false,
  38. };
  39. },
  40. }
  41. true
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement