///|
/// JSON accessors used when talking to the MoonBit and mooncakes.io APIs.
///|
pub fn json_field(obj : Json, key : String) -> Json? {
match obj {
Object(m) => m.get(key)
_ => None
}
}
///|
pub fn json_string(obj : Json, key : String) -> String? {
match json_field(obj, key) {
Some(String(s)) => Some(s)
_ => None
}
}
///|
pub fn json_bool(obj : Json, key : String) -> Bool? {
match json_field(obj, key) {
Some(True) => Some(true)
Some(False) => Some(false)
_ => None
}
}
///|
pub fn json_array(obj : Json, key : String) -> Array[Json]? {
match json_field(obj, key) {
Some(Array(a)) => Some(a)
_ => None
}
}
///|
pub fn json_object(obj : Json, key : String) -> Json? {
match json_field(obj, key) {
Some(Object(_) as o) => Some(o)
_ => None
}
}