vos_core/schema/objects/
json.rs

1use std::str::FromStr;
2
3use crate::{Dict, Json, List, Object};
4use crate::Number;
5
6impl From<&Json> for Object {
7    fn from(json: &Json) -> Self {
8        Object::from(json.clone())
9    }
10}
11
12impl From<Json> for Object {
13    fn from(json: Json) -> Self {
14        match json {
15            Json::Null => Object::Default,
16            Json::Bool(v) => Object::Boolean(v),
17            Json::Number(o) => Object::Number(Number::from_str(&o.to_string()).unwrap_or_default()),
18            Json::String(o) => Object::text(o, ""),
19            Json::Array(o) => Object::List(List::from_iter(o)),
20            Json::Object(o) => Object::Dict(Dict::from_iter(o)),
21        }
22    }
23}