Packages

Native gleam json parser/generator with jsonpath querying

Current section

Files

Jump to
simplejson src simplejson.gleam
Raw

src/simplejson.gleam

//// SimpleJSON
////
//// Basic JSON library for Gleam
import simplejson/internal/parser
import simplejson/internal/stringify
import simplejson/jsonvalue.{type JsonValue, type ParseError}
/// Parse a given string into a JsonValue Result
/// Or return Error if unable. This currently returns
/// Error(Nil) but will be extended in later versions to
/// give more detailed error information
///
/// ## Examples
///
/// ```gleam
/// parse("{\"a\":123,\"b\":[true, false]}")
/// // -> Ok(JsonObject(dict.from_list([#("a", JsonNumber(Some(123), None, Some("123"))), #("b", JsonArray([JsonBool(True), JsonBool(False)]))])))
/// ```
///
/// ```gleam
/// parse("[1,2,3]")
/// // -> Ok(JsonArray([JsonNumber(Some(1), None, Some("1")), JsonNumber(Some(2), None, Some("2")), JsonNumber(Some(3), None, Some("3"))]))
/// ```
///
pub fn parse(json: String) -> Result(JsonValue, ParseError) {
parser.parse(json)
}
/// Convert a given JsonValue into a String
///
/// ##Example
///
/// ```gleam
/// to_string(JsonArray([JsonNumber(Some(1), None, Some("1")), JsonNumber(Some(2), None, Some("2")), JsonNumber(Some(3), None, Some("3"))]))
/// // -> "[1,2,3]"
/// ```
///
pub fn to_string(json: JsonValue) -> String {
stringify.to_string(json)
}