daily pastebin goal
10%
SHARE
TWEET

Untitled

a guest Mar 23rd, 2019 56 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. use serde_json::{self, 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.        \"string_array\": [\"abcd\", \"efg\"]
  16.     }";
  17.    
  18.     let all: Value = serde_json::from_slice(all_type).unwrap();
  19.     let string: Value = serde_json::from_slice(string_only).unwrap();
  20.     let flag1 = is_data_valid(&all);
  21.     let flag2 = is_data_valid(&string);
  22.     println!("{}", flag1);
  23.     println!("{}", flag2);
  24. }
  25.  
  26. fn is_data_valid(val: &serde_json::Value) -> bool {
  27.     match val.as_object() {
  28.         Some(map) => {
  29.             for key in map.keys() {
  30.                 if !is_data_valid(&map[key]) {
  31.                     return false;
  32.                 }
  33.             }
  34.             true
  35.         },
  36.         None => {
  37.             match val.as_array() {
  38.                 Some(array) => {
  39.                     for obj in array {
  40.                         if !is_data_valid(&obj) {
  41.                             return false;
  42.                         }
  43.                     }
  44.                     true
  45.                 },
  46.                 None => val.is_string()
  47.             }
  48.         },
  49.     }
  50. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top