Skip to content

json #

Description:

json provides encoding/decoding of V data structures to/from JSON.

Examples:

import json

enum JobTitle {
    manager
    executive
    worker
}

struct Employee {
    name   string
    age    int
    salary f32
    title  JobTitle
}

fn main() {
    x := Employee{'Peter', 28, 95000.5, .worker}
    println(x)
    //
    s := json.encode(x)
    println('Employee x: ${s}')
    assert s == '{"name":"Peter","age":28,"salary":95000.5,"title":2}'
    //
    y := json.decode(Employee, s)!
    //
    println(y)
    assert y == x
}

Constants #

const used = 1

fn decode #

fn decode(typ voidptr, s string) !voidptr

decode tries to decode the provided JSON string, into a V structure.
If it can not do that, it returns an error describing the reason for the parsing failure.

fn encode #

fn encode(x voidptr) string

encode serialises the provided V value as a JSON string, optimised for shortness.

fn encode_pretty #

fn encode_pretty(x voidptr) string

encode_pretty serialises the provided V value as a JSON string, in a formatted way, optimised for viewing by humans.

struct C.cJSON #

struct C.cJSON {
	valueint    int
	valuedouble f64
	valuestring &char
}