zena:json

zena
import {…} from 'zena:json';

Classes

SourceLocation

zena
final class SourceLocation
Constructors
zena
new(line: i32, column: i32, endLine: i32, endColumn: i32)
#
Properties
zena
line: i32
#
zena
column: i32
#
zena
endLine: i32
#
zena
endColumn: i32
#

JsonObject

zena
class JsonObject
Constructors
zena
new(withLocations: boolean = false)
#
Properties
zena
size: i32 { get; }
#
Methods
zena
static withLocations(): JsonObject
#
zena
has(key: String): boolean
#
zena
delete(key: String): boolean
#
zena
locationOf(key: String): SourceLocation | null
#
zena
setLocation(key: String, loc: SourceLocation): void
#
zena
forEach(callback: (key: String, value: JsonValue) => void): void
#
zena
stringify(): String
#
Operators
zena
operator [](key: String): JsonValue
#
zena
operator []=(key: String, value: JsonValue): void
#

JsonArray

zena
class JsonArray
Constructors
zena
new(withLocations: boolean = false)
#
Properties
zena
length: i32 { get; }
#
Methods
zena
static withLocations(): JsonArray
#
zena
push(value: JsonValue): void
#
zena
pushWithLocation(value: JsonValue, loc: SourceLocation): void
#
zena
locationOf(index: i32): SourceLocation | null
#
zena
stringify(): String
#
Operators
zena
operator [](index: i32): JsonValue
#
zena
operator []=(index: i32, value: JsonValue): void
#

JsonParseError

zena
class JsonParseError extends Error
Extends Error
Constructors
zena
new(message: String, line: i32, column: i32)
#
Properties
zena
line: i32 { get; }
#
zena
column: i32 { get; }
#
2 inherited members
From Error
Properties
zena
message: String
#
Methods
zena
getStackTrace(): String | null
#

JsonBuilder

zena
class JsonBuilder

JsonBuilder - Streaming JSON construction

Provides a fluent API for building JSON strings incrementally.

Example: let json = new JsonBuilder() .beginObject() .key("name").string("example") .key("count").i32(42) .key("items").beginArray() .string("a") .string("b") .endArray() .endObject() .toString(); // {"name":"example","count":42,"items":["a","b"]}

Methods
zena
beginObject(): JsonBuilder
#
zena
endObject(): JsonBuilder
#
zena
beginArray(): JsonBuilder
#
zena
endArray(): JsonBuilder
#
zena
key(k: String): JsonBuilder
#
zena
string(v: String): JsonBuilder
#
zena
i32(v: i32): JsonBuilder
#
zena
i64(v: i64): JsonBuilder
#
zena
f64(v: f64): JsonBuilder
#
zena
bool(v: boolean): JsonBuilder
#
zena
nullValue(): JsonBuilder
#
zena
raw(json: String): JsonBuilder
#
zena
toString(): String
#

Type aliases

JsonValue

zena
type JsonValue = JsonObject | JsonArray | String | Box<f64> | Box<boolean> | null

JsonOptions

zena
type JsonOptions = {allowComments: boolean, trackLocations: boolean}

Functions

stringify

zena
function stringify(value: JsonValue, indent: String | null = null): String

Serialize any JSON value to a string.

value

The JSON value to serialize

indent

Optional indentation string for pretty-printing (e.g., " " or "\t")

parseJson

zena
function parseJson(input: String, options: JsonOptions | null = null): JsonValue

jsonGet

zena
function jsonGet(value: JsonValue, path: String): JsonValue