// // Copyright (c) 2008, Kevin McIntire // Licensed under the Academic Free License version 3.0 // // History: // 16 Sep 08 Kevin McIntire Creation // ** ** Serialization to/from Javascript Object Notation (JSON). ** ** See [docLib]`docLib::Json` for details. ** class Json { ** ** Write the given object as JSON to the given stream. ** The obj must be one of the follow: ** - null ** - Bool ** - Num ** - Str ** - Str:Obj? ** - Obj?[] ** - [simple]`docLang::Serialization#simple` (written as JSON string) ** - [serializable]`docLang::Serialization#serializable` (written as JSON object) ** ** See [docLib]`docLib::Json` for details. ** public static Void write(OutStream out, Obj? obj) { JsonWriter(out).write(obj) out.flush } ** ** Convenience for `write` to an in-memory string. ** public static Str writeToStr(Obj? obj) { buf := StrBuf() write(buf.out, obj) return buf.toStr } ** ** Read a JSON object from the given stream and return ** one of the follow types: ** - null ** - Bool ** - Int ** - Float ** - Str ** - Str:Obj? ** - Obj?[] ** ** See [Str.in]`sys::Str.in` to read from an in-memory string. ** public static Obj? read(InStream in) { return JsonParser(in).parse } }