34 lines
974 B
Plaintext
34 lines
974 B
Plaintext
:sig
|
|
DValue json_decode(String s)
|
|
|
|
:params
|
|
s : string containing JSON data
|
|
return value : a DValue object containing the deserialized JSON data
|
|
|
|
:see
|
|
0_DValue
|
|
json_encode
|
|
2_DValue_to_bool
|
|
2_DValue_to_f64
|
|
2_DValue_to_u64
|
|
|
|
:content
|
|
Deserializes `s` into a `DValue` structure.
|
|
|
|
The returned structure is usually consumed through `DValue` accessors such as:
|
|
|
|
- `tree["key"].to_string()`
|
|
- `tree["count"].to_u64()`
|
|
- `tree["enabled"].to_bool()`
|
|
|
|
Current runtime behavior:
|
|
|
|
- JSON objects and arrays become map-shaped `DValue` values.
|
|
- JSON booleans become native `bool` `DValue` values.
|
|
- JSON strings become native `String` `DValue` values.
|
|
- JSON numbers currently deserialize as string-valued `DValue` nodes, so typed conversions such as `to_f64()` and `to_u64()` are the normal way to read numeric content.
|
|
|
|
:example
|
|
DValue data = json_decode("{\"name\": \"Ada\", \"tags\": [\"x\", \"y\"]}");
|
|
print(data["name"].to_string(), " has ", data["tags"].keys().size(), " tags\n");
|