Skip to content

Low level parsing and writing

Benjozork edited this page Nov 17, 2018 · 1 revision

Reading JSON

kson uses a JsonReader to read JSON strings.

It is basically a java StringReader with added functionality and convenience.

Reading a JSON object

WARNING: THIS IS VERY MUCH WORK IN PROGRESS, AND TEMPORARY.

// use whatever JSON string we want to use
val sourceJson = """
    {
        "abcd": "efgh",
        "array": [
            "ijkl",
            "mnop",
            "qrst"
        ],
        "uvxy": "z"
    }
""".trimIndent()

// create a JsonReader from our string
val jsonReader = JsonReader(sourceJson)

// read the JSON and return a map
val parsedJson: Map<String, Any> = JsonObjectParser.read(jsonReader)

println(parsedJson)

Output:

{uvxy = z, array = [ijkl, mnop, qrst], abcd = efgh}

Writing JSON

WARNING: THIS IS VERY MUCH WORK IN PROGRESS, AND TEMPORARY.

kson uses a JsonWriter to write JSON strings.

It is basically a java StringBuilder with added functionality and convenience.

val bd = StringBuilder()

val writer = JsonWriter(bd)

JsonObjectWriter.print(writer,  mapOf("abcd" to "efgh", "array" to listOf("ijkl", "mnop", "qrst"), "uvxy" to "z"))
    
println(bd.toString())

Output:

{
    "abcd": "efgh",
    "array": [
        "ijkl",
        "mnop",
        "qrst"
    ],
    "uvxy": "z"
}
Clone this wiki locally