use json::JsonValue; use std::fs::OpenOptions; use std::io::prelude::*; // use std::io::{BufWriter, Write}; #[test] pub(crate) fn test_read_asterix_json_spec_from_file() { let mut myfile = match OpenOptions::new() .read(true) .write(true) .create(true) .open("/tmp/definition.json") { Ok(f) => f, Err(_) => panic!("Error opening file"), }; let mut raw_json = String::new(); myfile.read_to_string(&mut raw_json).unwrap(); let deserialized: JsonValue = match json::parse(&raw_json) { Ok(d) => d, Err(_) => panic!("Error deserializing json file content"), }; for element in deserialized.entries() { if element.1.members().count() > 0 { println!("Element key: {}", element.0); for member in element.1.members() { for member_element in member.entries(){ println!("Element key: {}, value: {}", member_element.0, member_element.1) } } } else { println!("Element key: {}, value: {}", element.0, element.1) } } let stringfied = json::stringify_pretty(deserialized.clone(), 4); println!("Json strinfied: {}", stringfied); assert_ne!(0, deserialized.len()); }