#![allow(dead_code)]
use simple_json2::{
self, parse_json,
json::{ JsonValue },
impls::SimpleError
};
const ZERO_ASCII: u64 = 48;
fn main() -> Result<(), SimpleError> {
parse_json_f64()?;
parse_simple()?;
Ok(())
}
fn parse_json_f64() -> Result<(), SimpleError> {
let json_str = r#"{"USD":7073.33}"#;
let json_val: JsonValue = parse_json(&json_str)?;
let data = json_val.get_object()?[0].1.get_number_f64()?;
assert_eq!(data, 7073.33);
Ok(())
}
fn parse_simple() -> Result<(), SimpleError> {
let json_str = r#"{"data":{"id":"bitcoin","symbol":"BTC"},"timestamp":1574224303089}"#;
let json: JsonValue = parse_json(&json_str)?;
let json_obj = &json.get_object()?[0];
assert_eq!(json_obj.0, "data".chars().collect::<Vec<char>>());
let inner_obj = &json_obj.1.get_object()?[0];
assert_eq!(inner_obj.0, "id".chars().collect::<Vec<char>>());
assert_eq!(inner_obj.1.get_string()?, "bitcoin");
Ok(())
}