1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
//! JSON utilities.
use serde_json::Value;
/// Get the keys of a JSON object.
pub fn get_keys(value: &Value) -> Vec<String> {
let mut keys = Vec::new();
if let Value::Object(map) = value {
for key in map.keys() {
keys.push(key.to_string());
}
}
keys
}
/// Get the values of a JSON object.
pub fn get_values(value: &Value) -> Vec<Value> {
let mut values = Vec::new();
if let Value::Object(map) = value {
for value in map.values() {
values.push(value.clone());
}
}
values
}
/// Get the length of a JSON array.
pub fn get_length(value: &Value) -> usize {
if let Value::Array(array) = value {
array.len()
} else {
0
}
}