use serde_json::{Error, Value};
use serde::de::DeserializeOwned;
use serde::Serialize;
pub fn to_json<T: Serialize>(value: &T) -> Result<String, Error> {
serde_json::to_string(value)
}
pub fn to_pretty_json<T: Serialize>(value: &T) -> Result<String, Error> {
serde_json::to_string_pretty(value)
}
pub fn from_json<T: DeserializeOwned>(s: &str) -> Result<T, Error> {
serde_json::from_str(s)
}
pub fn parse(json_str: &str) -> Result<Value, Error> {
serde_json::from_str(json_str)
}
pub fn to_string(value: &Value) -> Result<String, Error> {
serde_json::to_string(value)
}
pub fn to_pretty_string(value: &Value) -> Result<String, Error> {
serde_json::to_string_pretty(value)
}
pub fn get<'a>(value: &'a Value, key: &str) -> Option<&'a Value> {
value.get(key)
}
pub fn set(mut value: Value, key: &str, val: Value) -> Value {
if let Value::Object(ref mut map) = value {
map.insert(key.to_string(), val);
}
value
}
pub fn is_array(value: &Value) -> bool {
value.is_array()
}
pub fn is_object(value: &Value) -> bool {
value.is_object()
}
pub fn is_string(value: &Value) -> bool {
value.is_string()
}