21. JSON 的 Boost 包

JSON boost 模块为 JSON 实现了一系列辅助宏和函数。

所有函数和符号都在 “json_boost” 模块中,请使用 require 访问该模块。

require daslib/json_boost

21.1. 读取器宏

json
该宏实现了在程序中嵌入 JSON 对象::

var jsv = %json~ {

“name”: “main_window”, “value”: 500, “size”: [1,2,3]

} %%

21.2. Variant macros

better_json

该宏用于实现 is json_valueas json_value 运行时检查。 它主要是将 value as name 替换为 value.value as name,将 value is name 替换为 value.value is name

21.3. 值转换

JV(v: float const)

JV returns json::JsonValue ?

argument

argument type

v

float const

skip functions skip void?

JV(v: int const)

JV returns json::JsonValue ?

argument

argument type

v

int const

skip functions skip void?

JV(v: bitfield const)

JV returns json::JsonValue ?

argument

argument type

v

bitfield<> const

skip functions skip void?

JV(val: int8 const)

JV returns json::JsonValue ?

argument

argument type

val

int8 const

skip functions skip void?

JV(val: uint8 const)

JV returns json::JsonValue ?

argument

argument type

val

uint8 const

skip functions skip void?

JV(val: int16 const)

JV returns json::JsonValue ?

argument

argument type

val

int16 const

skip functions skip void?

JV(val: uint16 const)

JV returns json::JsonValue ?

argument

argument type

val

uint16 const

skip functions skip void?

JV(val: uint const)

JV returns json::JsonValue ?

argument

argument type

val

uint const

skip functions skip void?

JV(val: int64 const)

JV returns json::JsonValue ?

argument

argument type

val

int64 const

skip functions skip void?

JV(val: uint64 const)

JV returns json::JsonValue ?

argument

argument type

val

uint64 const

skip functions skip void?

from_JV(v: JsonValue? const; ent: auto(EnumT) const; defV: EnumT const)

from_JV returns EnumT

argument

argument type

v

json::JsonValue ? const

ent

auto(EnumT) const

defV

EnumT const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; ent: string const; defV: string const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

ent

string const

defV

string const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; ent: bool const; defV: bool const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

ent

bool const

defV

bool const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; ent: float const; defV: float const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

ent

float const

defV

float const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; ent: double const; defV: double const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

ent

double const

defV

double const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; ent: int const; defV: int const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

ent

int const

defV

int const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; ent: uint const; defV: uint const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

ent

uint const

defV

uint const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; ent: int64 const; defV: int64 const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

ent

int64 const

defV

int64 const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; ent: uint64 const; defV: uint64 const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

ent

uint64 const

defV

uint64 const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; ent: int8 const; defV: int8 const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

ent

int8 const

defV

int8 const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; ent: uint8 const; defV: uint8 const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

ent

uint8 const

defV

uint8 const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; ent: int16 const; defV: int16 const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

ent

int16 const

defV

int16 const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; ent: uint16 const; defV: uint16 const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

ent

uint16 const

defV

uint16 const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; ent: bitfield const; defV: bitfield const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

ent

bitfield<> const

defV

bitfield<> const

解析 JSON 值并返回相应的本地值。

JV(v: auto(VecT) const)

JV returns auto

argument

argument type

v

auto(VecT) const

skip functions skip void?

from_JV(v: JsonValue?; ent: auto(VecT) const; defV: VecT const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

ent

auto(VecT) const

defV

VecT const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; anything: table<auto(KT);auto(VT)> const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

anything

table<auto(KT);auto(VT)> const

解析 JSON 值并返回相应的本地值。

from_JV(v: JsonValue?; anything: auto(TT) const)

from_JV returns auto

argument

argument type

v

json::JsonValue ?

anything

auto(TT) const

解析 JSON 值并返回相应的本地值。

JV(value: auto const)

JV returns json::JsonValue ?

argument

argument type

value

auto const

skip functions skip void?

JV(val1: auto const; val2: auto const)

JV returns json::JsonValue ?

argument

argument type

val1

auto const

val2

auto const

skip functions skip void?

JV(val1: auto const; val2: auto const; val3: auto const)

JV returns json::JsonValue ?

argument

argument type

val1

auto const

val2

auto const

val3

auto const

skip functions skip void?

JV(val1: auto const; val2: auto const; val3: auto const; val4: auto const)

JV returns json::JsonValue ?

argument

argument type

val1

auto const

val2

auto const

val3

auto const

val4

auto const

skip functions skip void?

JV(val1: auto const; val2: auto const; val3: auto const; val4: auto const; val5: auto const)

JV returns json::JsonValue ?

argument

argument type

val1

auto const

val2

auto const

val3

auto const

val4

auto const

val5

auto const

skip functions skip void?

JV(val1: auto const; val2: auto const; val3: auto const; val4: auto const; val5: auto const; val6: auto const)

JV returns json::JsonValue ?

argument

argument type

val1

auto const

val2

auto const

val3

auto const

val4

auto const

val5

auto const

val6

auto const

skip functions skip void?

JV(val1: auto const; val2: auto const; val3: auto const; val4: auto const; val5: auto const; val6: auto const; val7: auto const)

JV returns json::JsonValue ?

argument

argument type

val1

auto const

val2

auto const

val3

auto const

val4

auto const

val5

auto const

val6

auto const

val7

auto const

skip functions skip void?

JV(val1: auto const; val2: auto const; val3: auto const; val4: auto const; val5: auto const; val6: auto const; val7: auto const; val8: auto const)

JV returns json::JsonValue ?

argument

argument type

val1

auto const

val2

auto const

val3

auto const

val4

auto const

val5

auto const

val6

auto const

val7

auto const

val8

auto const

skip functions skip void?

JV(val1: auto const; val2: auto const; val3: auto const; val4: auto const; val5: auto const; val6: auto const; val7: auto const; val8: auto const; val9: auto const)

JV returns json::JsonValue ?

argument

argument type

val1

auto const

val2

auto const

val3

auto const

val4

auto const

val5

auto const

val6

auto const

val7

auto const

val8

auto const

val9

auto const

skip functions skip void?

JV(val1: auto const; val2: auto const; val3: auto const; val4: auto const; val5: auto const; val6: auto const; val7: auto const; val8: auto const; val9: auto const; val10: auto const)

JV returns json::JsonValue ?

argument

argument type

val1

auto const

val2

auto const

val3

auto const

val4

auto const

val5

auto const

val6

auto const

val7

auto const

val8

auto const

val9

auto const

val10

auto const

skip functions skip void?

21.4. Uncategorized

operator ?[](a: JsonValue? const ==const; key: string const)

?[] returns json::JsonValue ? const

argument

argument type

a

json::JsonValue ? const!

key

string const

如果存在,则返回 JSON 数组中索引的值。

operator ?[](a: JsonValue? ==const; key: string const)

?[] returns json::JsonValue ?

argument

argument type

a

json::JsonValue ?!

key

string const

如果存在,则返回 JSON 数组中索引的值。

operator ?.(a: JsonValue? const ==const; key: string const)

?. returns json::JsonValue ? const

argument

argument type

a

json::JsonValue ? const!

key

string const

如果存在,则返回 JSON 对象中键的值。

operator ?.(a: JsonValue? ==const; key: string const)

?. returns json::JsonValue ?

argument

argument type

a

json::JsonValue ?!

key

string const

如果存在,则返回 JSON 对象中键的值。

operator ?[](a: JsonValue? const ==const; idx: int const)

?[] returns json::JsonValue ? const

argument

argument type

a

json::JsonValue ? const!

idx

int const

如果存在,则返回 JSON 数组中索引的值。

operator ?[](a: JsonValue? ==const; idx: int const)

?[] returns json::JsonValue ?

argument

argument type

a

json::JsonValue ?!

idx

int const

如果存在,则返回 JSON 数组中索引的值。

operator ??(a: JsonValue? const; val: double const)

?? returns double

argument

argument type

a

json::JsonValue ? const

val

double const

如果存在,则返回 JSON 对象的值,否则返回默认值。

operator ??(a: JsonValue? const; val: float const)

?? returns float

argument

argument type

a

json::JsonValue ? const

val

float const

如果存在,则返回 JSON 对象的值,否则返回默认值。

operator ??(a: JsonValue? const; val: int8 const)

?? returns int8

argument

argument type

a

json::JsonValue ? const

val

int8 const

如果存在,则返回 JSON 对象的值,否则返回默认值。

operator ??(a: JsonValue? const; val: int16 const)

?? returns int16

argument

argument type

a

json::JsonValue ? const

val

int16 const

如果存在,则返回 JSON 对象的值,否则返回默认值。

operator ??(a: JsonValue? const; val: int const)

?? returns int

argument

argument type

a

json::JsonValue ? const

val

int const

如果存在,则返回 JSON 对象的值,否则返回默认值。

operator ??(a: JsonValue? const; val: int64 const)

?? returns int64

argument

argument type

a

json::JsonValue ? const

val

int64 const

如果存在,则返回 JSON 对象的值,否则返回默认值。

operator ??(a: JsonValue? const; val: uint8 const)

?? returns uint8

argument

argument type

a

json::JsonValue ? const

val

uint8 const

如果存在,则返回 JSON 对象的值,否则返回默认值。

operator ??(a: JsonValue? const; val: uint16 const)

?? returns uint16

argument

argument type

a

json::JsonValue ? const

val

uint16 const

如果存在,则返回 JSON 对象的值,否则返回默认值。

operator ??(a: JsonValue? const; val: uint const)

?? returns uint

argument

argument type

a

json::JsonValue ? const

val

uint const

如果存在,则返回 JSON 对象的值,否则返回默认值。

operator ??(a: JsonValue? const; val: uint64 const)

?? returns uint64

argument

argument type

a

json::JsonValue ? const

val

uint64 const

如果存在,则返回 JSON 对象的值,否则返回默认值。

operator ??(a: JsonValue? const; val: bool const)

?? returns bool

argument

argument type

a

json::JsonValue ? const

val

bool const

如果存在,则返回 JSON 对象的值,否则返回默认值。

operator ??(a: JsonValue? const; val: string const)

?? returns string

argument

argument type

a

json::JsonValue ? const

val

string const

如果存在,则返回 JSON 对象的值,否则返回默认值。

operator ?.`value(a: JsonValue? const ==const)

?.`value returns JsValue ?

argument

argument type

a

json::JsonValue ? const!

如果存在 JSON 对象,则返回该对象的值。

operator ?.`value(a: JsonValue? ==const)

?.`value returns JsValue ?

argument

argument type

a

json::JsonValue ?!

如果存在 JSON 对象,则返回该对象的值。