mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
1495 lines
176 KiB
HTML
1495 lines
176 KiB
HTML
<?xml version="1.0" encoding="utf-8" ?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<!-- This file is generated by Nim. -->
|
|
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-theme="auto">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>std/json</title>
|
|
|
|
<!-- Google fonts -->
|
|
<link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
|
|
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
|
|
|
|
<!-- Favicon -->
|
|
<link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
|
|
<link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII=">
|
|
|
|
<!-- CSS -->
|
|
<link rel="stylesheet" type="text/css" href="nimdoc.out.css?v=2.3.1">
|
|
|
|
<!-- JS -->
|
|
<script type="text/javascript" src="dochack.js?v=2.3.1"></script>
|
|
</head>
|
|
<body>
|
|
<div class="document" id="documentId">
|
|
<div class="container">
|
|
<h1 class="title">std/json</h1>
|
|
<div class="row">
|
|
<div class="three columns">
|
|
<div class="theme-select-wrapper">
|
|
<label for="theme-select">Theme: </label>
|
|
<select id="theme-select" onchange="setTheme(this.value)">
|
|
<option value="auto">🌗 Match OS</option>
|
|
<option value="dark">🌑 Dark</option>
|
|
<option value="light">🌕 Light</option>
|
|
</select>
|
|
</div>
|
|
<div id="global-links">
|
|
<ul class="simple-boot">
|
|
<li><a href="manual.html">Manual</a></li>
|
|
<li><a href="lib.html">Standard library</a></li>
|
|
<li> <a id="indexLink" href="theindex.html">Index</a></li>
|
|
<li><a href="compiler/theindex.html">Compiler docs</a></li>
|
|
<li><a href="https://nim-lang.github.io/fusion/theindex.html">Fusion docs</a></li>
|
|
<li><a href="https://nim-lang.github.io/Nim/">devel</a>, <a href="https://nim-lang.org/documentation.html">stable</a></li>
|
|
</ul>
|
|
</div>
|
|
<div id="searchInputDiv">
|
|
Search: <input type="search" id="searchInput"
|
|
oninput="search()" />
|
|
</div>
|
|
|
|
<ul class="simple simple-toc" id="toc-list">
|
|
<li><a class="reference" id="see-also_toc" href="#see-also">See also</a></li>
|
|
<li><a class="reference" id="overview_toc" href="#overview">Overview</a></li>
|
|
<ul class="simple"><li><a class="reference" id="overview-parsing-json_toc" href="#overview-parsing-json">Parsing JSON</a></li>
|
|
<li><a class="reference" id="overview-reading-values_toc" href="#overview-reading-values">Reading values</a></li>
|
|
<li><a class="reference" id="overview-handling-optional-keys_toc" href="#overview-handling-optional-keys">Handling optional keys</a></li>
|
|
<li><a class="reference" id="overview-using-default-values_toc" href="#overview-using-default-values">Using default values</a></li>
|
|
<li><a class="reference" id="overview-unmarshalling_toc" href="#overview-unmarshalling">Unmarshalling</a></li>
|
|
</ul><li><a class="reference" id="creating-json_toc" href="#creating-json">Creating JSON</a></li>
|
|
<li>
|
|
<a class="reference reference-toplevel" href="#6" id="56">Imports</a>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#7" id="57">Types</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<li><a class="reference" href="#JsonNode" title="JsonNode = ref JsonNodeObj">JsonNode</a></li>
|
|
<li><a class="reference" href="#JsonNodeKind" title="JsonNodeKind = enum
|
|
JNull, JBool, JInt, JFloat, JString, JObject, JArray">JsonNodeKind</a></li>
|
|
<li><a class="reference" href="#JsonNodeObj" title="JsonNodeObj {.acyclic.} = object
|
|
case kind*: JsonNodeKind
|
|
of JString:
|
|
str*: string
|
|
of JInt:
|
|
num*: BiggestInt
|
|
of JFloat:
|
|
fnum*: float
|
|
of JBool:
|
|
bval*: bool
|
|
of JNull:
|
|
nil
|
|
of JObject:
|
|
fields*: OrderedTable[string, JsonNode]
|
|
of JArray:
|
|
elems*: seq[JsonNode]">JsonNodeObj</a></li>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#12" id="62">Procs</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<ul class="simple nested-toc-section">$
|
|
<li><a class="reference" href="#%24%2CJsonNode" title="`$`(node: JsonNode): string">`$`(node: JsonNode): string</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">%
|
|
<li><a class="reference" href="#%25%2Cbool" title="`%`(b: bool): JsonNode">`%`(b: bool): JsonNode</a></li>
|
|
<li><a class="reference" href="#%25%2CopenArray%5Btuple%5Bstring%2CJsonNode%5D%5D" title="`%`(keyVals: openArray[tuple[key: string, val: JsonNode]]): JsonNode">`%`(keyVals: openArray[tuple[key: string, val: JsonNode]]): JsonNode</a></li>
|
|
<li><a class="reference" href="#%25%2CBiggestInt" title="`%`(n: BiggestInt): JsonNode">`%`(n: BiggestInt): JsonNode</a></li>
|
|
<li><a class="reference" href="#%25%2CBiggestUInt" title="`%`(n: BiggestUInt): JsonNode">`%`(n: BiggestUInt): JsonNode</a></li>
|
|
<li><a class="reference" href="#%25%2Cfloat" title="`%`(n: float): JsonNode">`%`(n: float): JsonNode</a></li>
|
|
<li><a class="reference" href="#%25%2Cint" title="`%`(n: int): JsonNode">`%`(n: int): JsonNode</a></li>
|
|
<li><a class="reference" href="#%25%2Cuint" title="`%`(n: uint): JsonNode">`%`(n: uint): JsonNode</a></li>
|
|
<li><a class="reference" href="#%25_2" title="`%`(o: enum): JsonNode">`%`(o: enum): JsonNode</a></li>
|
|
<li><a class="reference" href="#%25%2Cref." title="`%`(o: ref object): JsonNode">`%`(o: ref object): JsonNode</a></li>
|
|
<li><a class="reference" href="#%25%2Cstring" title="`%`(s: string): JsonNode">`%`(s: string): JsonNode</a></li>
|
|
<li><a class="reference" href="#%25%2CT" title="`%`[T: object](o: T): JsonNode">`%`[T: object](o: T): JsonNode</a></li>
|
|
<li><a class="reference" href="#%25%2CopenArray%5BT%5D" title="`%`[T](elements: openArray[T]): JsonNode">`%`[T](elements: openArray[T]): JsonNode</a></li>
|
|
<li><a class="reference" href="#%25%2COption%5BT%5D" title="`%`[T](opt: Option[T]): JsonNode">`%`[T](opt: Option[T]): JsonNode</a></li>
|
|
<li><a class="reference" href="#%25" title="`%`[T](table: Table[string, T] | OrderedTable[string, T]): JsonNode">`%`[T](table: Table[string, T] | OrderedTable[string, T]): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">==
|
|
<li><a class="reference" href="#%3D%3D%2CJsonNode%2CJsonNode" title="`==`(a, b: JsonNode): bool">`==`(a, b: JsonNode): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">[]
|
|
<li><a class="reference" href="#%5B%5D%2CJsonNode%2CBackwardsIndex" title="`[]`(node: JsonNode; index: BackwardsIndex): JsonNode">`[]`(node: JsonNode; index: BackwardsIndex): JsonNode</a></li>
|
|
<li><a class="reference" href="#%5B%5D%2CJsonNode%2Cint" title="`[]`(node: JsonNode; index: int): JsonNode">`[]`(node: JsonNode; index: int): JsonNode</a></li>
|
|
<li><a class="reference" href="#%5B%5D%2CJsonNode%2Cstring" title="`[]`(node: JsonNode; name: string): JsonNode">`[]`(node: JsonNode; name: string): JsonNode</a></li>
|
|
<li><a class="reference" href="#%5B%5D%2CJsonNode%2CHSlice%5BU%2CV%5D" title="`[]`[U, V](a: JsonNode; x: HSlice[U, V]): JsonNode">`[]`[U, V](a: JsonNode; x: HSlice[U, V]): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">[]=
|
|
<li><a class="reference" href="#%5B%5D%3D%2CJsonNode%2Cstring%2CJsonNode" title="`[]=`(obj: JsonNode; key: string; val: JsonNode)">`[]=`(obj: JsonNode; key: string; val: JsonNode)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">add
|
|
<li><a class="reference" href="#add%2CJsonNode%2CJsonNode" title="add(father, child: JsonNode)">add(father, child: JsonNode)</a></li>
|
|
<li><a class="reference" href="#add%2CJsonNode%2Cstring%2CJsonNode" title="add(obj: JsonNode; key: string; val: JsonNode)">add(obj: JsonNode; key: string; val: JsonNode)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">contains
|
|
<li><a class="reference" href="#contains%2CJsonNode%2Cstring" title="contains(node: JsonNode; key: string): bool">contains(node: JsonNode; key: string): bool</a></li>
|
|
<li><a class="reference" href="#contains%2CJsonNode%2CJsonNode" title="contains(node: JsonNode; val: JsonNode): bool">contains(node: JsonNode; val: JsonNode): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">copy
|
|
<li><a class="reference" href="#copy%2CJsonNode" title="copy(p: JsonNode): JsonNode">copy(p: JsonNode): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">delete
|
|
<li><a class="reference" href="#delete%2CJsonNode%2Cstring" title="delete(obj: JsonNode; key: string)">delete(obj: JsonNode; key: string)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">escapeJson
|
|
<li><a class="reference" href="#escapeJson%2Cstring" title="escapeJson(s: string): string">escapeJson(s: string): string</a></li>
|
|
<li><a class="reference" href="#escapeJson%2Cstring%2Cstring" title="escapeJson(s: string; result: var string)">escapeJson(s: string; result: var string)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">escapeJsonUnquoted
|
|
<li><a class="reference" href="#escapeJsonUnquoted%2Cstring" title="escapeJsonUnquoted(s: string): string">escapeJsonUnquoted(s: string): string</a></li>
|
|
<li><a class="reference" href="#escapeJsonUnquoted%2Cstring%2Cstring" title="escapeJsonUnquoted(s: string; result: var string)">escapeJsonUnquoted(s: string; result: var string)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getBiggestInt
|
|
<li><a class="reference" href="#getBiggestInt%2CJsonNode%2CBiggestInt" title="getBiggestInt(n: JsonNode; default: BiggestInt = 0): BiggestInt">getBiggestInt(n: JsonNode; default: BiggestInt = 0): BiggestInt</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getBool
|
|
<li><a class="reference" href="#getBool%2CJsonNode%2Cbool" title="getBool(n: JsonNode; default: bool = false): bool">getBool(n: JsonNode; default: bool = false): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getElems
|
|
<li><a class="reference" href="#getElems%2CJsonNode%2Cseq%5BJsonNode%5D" title="getElems(n: JsonNode; default: seq[JsonNode] = @[]): seq[JsonNode]">getElems(n: JsonNode; default: seq[JsonNode] = @[]): seq[JsonNode]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getFields
|
|
<li><a class="reference" href="#getFields%2CJsonNode" title="getFields(n: JsonNode; default = initOrderedTable[string, JsonNode](2)): OrderedTable[
|
|
string, JsonNode]">getFields(n: JsonNode; default = initOrderedTable[string, JsonNode](2)): OrderedTable[
|
|
string, JsonNode]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getFloat
|
|
<li><a class="reference" href="#getFloat%2CJsonNode%2Cfloat" title="getFloat(n: JsonNode; default: float = 0.0): float">getFloat(n: JsonNode; default: float = 0.0): float</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getInt
|
|
<li><a class="reference" href="#getInt%2CJsonNode%2Cint" title="getInt(n: JsonNode; default: int = 0): int">getInt(n: JsonNode; default: int = 0): int</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getOrDefault
|
|
<li><a class="reference" href="#getOrDefault%2CJsonNode%2Cstring" title="getOrDefault(node: JsonNode; key: string): JsonNode">getOrDefault(node: JsonNode; key: string): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getStr
|
|
<li><a class="reference" href="#getStr%2CJsonNode%2Cstring" title="getStr(n: JsonNode; default: string = ""): string">getStr(n: JsonNode; default: string = ""): string</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">hash
|
|
<li><a class="reference" href="#hash%2CJsonNode" title="hash(n: JsonNode): Hash">hash(n: JsonNode): Hash</a></li>
|
|
<li><a class="reference" href="#hash%2COrderedTable%5Bstring%2CJsonNode%5D" title="hash(n: OrderedTable[string, JsonNode]): Hash">hash(n: OrderedTable[string, JsonNode]): Hash</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">hasKey
|
|
<li><a class="reference" href="#hasKey%2CJsonNode%2Cstring" title="hasKey(node: JsonNode; key: string): bool">hasKey(node: JsonNode; key: string): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">len
|
|
<li><a class="reference" href="#len%2CJsonNode" title="len(n: JsonNode): int">len(n: JsonNode): int</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">newJArray
|
|
<li><a class="reference" href="#newJArray" title="newJArray(): JsonNode">newJArray(): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">newJBool
|
|
<li><a class="reference" href="#newJBool%2Cbool" title="newJBool(b: bool): JsonNode">newJBool(b: bool): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">newJFloat
|
|
<li><a class="reference" href="#newJFloat%2Cfloat" title="newJFloat(n: float): JsonNode">newJFloat(n: float): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">newJInt
|
|
<li><a class="reference" href="#newJInt%2CBiggestInt" title="newJInt(n: BiggestInt): JsonNode">newJInt(n: BiggestInt): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">newJNull
|
|
<li><a class="reference" href="#newJNull" title="newJNull(): JsonNode">newJNull(): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">newJObject
|
|
<li><a class="reference" href="#newJObject" title="newJObject(): JsonNode">newJObject(): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">newJString
|
|
<li><a class="reference" href="#newJString%2Cstring" title="newJString(s: string): JsonNode">newJString(s: string): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">parseFile
|
|
<li><a class="reference" href="#parseFile%2Cstring" title="parseFile(filename: string): JsonNode">parseFile(filename: string): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">parseJson
|
|
<li><a class="reference" href="#parseJson%2Cstring" title="parseJson(buffer: string; rawIntegers = false; rawFloats = false): JsonNode">parseJson(buffer: string; rawIntegers = false; rawFloats = false): JsonNode</a></li>
|
|
<li><a class="reference" href="#parseJson%2CStream%2Cstring" title="parseJson(s: Stream; filename: string = ""; rawIntegers = false;
|
|
rawFloats = false): JsonNode">parseJson(s: Stream; filename: string = ""; rawIntegers = false;
|
|
rawFloats = false): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">pretty
|
|
<li><a class="reference" href="#pretty%2CJsonNode%2Cint" title="pretty(node: JsonNode; indent = 2): string">pretty(node: JsonNode; indent = 2): string</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">to
|
|
<li><a class="reference" href="#to%2CJsonNode%2Ctypedesc%5BT%5D" title="to[T](node: JsonNode; t: typedesc[T]): T">to[T](node: JsonNode; t: typedesc[T]): T</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">toUgly
|
|
<li><a class="reference" href="#toUgly%2Cstring%2CJsonNode" title="toUgly(result: var string; node: JsonNode)">toUgly(result: var string; node: JsonNode)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">{}
|
|
<li><a class="reference" href="#%7B%7D%2CJsonNode%2Cvarargs%5Bint%5D" title="`{}`(node: JsonNode; index: varargs[int]): JsonNode">`{}`(node: JsonNode; index: varargs[int]): JsonNode</a></li>
|
|
<li><a class="reference" href="#%7B%7D%2CJsonNode%2Cstring" title="`{}`(node: JsonNode; key: string): JsonNode">`{}`(node: JsonNode; key: string): JsonNode</a></li>
|
|
<li><a class="reference" href="#%7B%7D%2CJsonNode%2Cvarargs%5Bstring%5D" title="`{}`(node: JsonNode; keys: varargs[string]): JsonNode">`{}`(node: JsonNode; keys: varargs[string]): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">{}=
|
|
<li><a class="reference" href="#%7B%7D%3D%2CJsonNode%2Cvarargs%5Bstring%5D%2CJsonNode" title="`{}=`(node: JsonNode; keys: varargs[string]; value: JsonNode)">`{}=`(node: JsonNode; keys: varargs[string]; value: JsonNode)</a></li>
|
|
|
|
</ul>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#15" id="65">Iterators</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<ul class="simple nested-toc-section">items
|
|
<li><a class="reference" href="#items.i%2CJsonNode" title="items(node: JsonNode): JsonNode">items(node: JsonNode): JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">keys
|
|
<li><a class="reference" href="#keys.i%2CJsonNode" title="keys(node: JsonNode): string">keys(node: JsonNode): string</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">mitems
|
|
<li><a class="reference" href="#mitems.i%2CJsonNode" title="mitems(node: var JsonNode): var JsonNode">mitems(node: var JsonNode): var JsonNode</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">mpairs
|
|
<li><a class="reference" href="#mpairs.i%2CJsonNode" title="mpairs(node: var JsonNode): tuple[key: string, val: var JsonNode]">mpairs(node: var JsonNode): tuple[key: string, val: var JsonNode]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">pairs
|
|
<li><a class="reference" href="#pairs.i%2CJsonNode" title="pairs(node: JsonNode): tuple[key: string, val: JsonNode]">pairs(node: JsonNode): tuple[key: string, val: JsonNode]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">parseJsonFragments
|
|
<li><a class="reference" href="#parseJsonFragments.i%2CStream%2Cstring" title="parseJsonFragments(s: Stream; filename: string = ""; rawIntegers = false;
|
|
rawFloats = false): JsonNode">parseJsonFragments(s: Stream; filename: string = ""; rawIntegers = false;
|
|
rawFloats = false): JsonNode</a></li>
|
|
|
|
</ul>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#17" id="67">Macros</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<ul class="simple nested-toc-section">%*
|
|
<li><a class="reference" href="#%25%2A.m%2Cuntyped" title="`%*`(x: untyped): untyped">`%*`(x: untyped): untyped</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">isRefSkipDistinct
|
|
<li><a class="reference" href="#isRefSkipDistinct.m%2Ctyped" title="isRefSkipDistinct(arg: typed): untyped">isRefSkipDistinct(arg: typed): untyped</a></li>
|
|
|
|
</ul>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#18" id="68">Templates</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<ul class="simple nested-toc-section">%
|
|
<li><a class="reference" href="#%25.t%2CJsonNode" title="`%`(j: JsonNode): JsonNode">`%`(j: JsonNode): JsonNode</a></li>
|
|
|
|
</ul>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
<li>
|
|
<a class="reference reference-toplevel" href="#19" id="69">Exports</a>
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
<div class="nine columns" id="content">
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L1" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L1" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
<div id="tocRoot"></div>
|
|
|
|
<p class="module-desc">This module implements a simple high performance <span id="json_1">JSON</span> parser. JSON (JavaScript Object Notation) is a lightweight data-interchange format that is easy for humans to read and write (unlike XML). It is easy for machines to parse and generate. JSON is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999.
|
|
<h1><a class="toc-backref" id="see-also" href="#see-also">See also</a></h1><ul class="simple"><li><a class="reference external" href="parsejson.html">std/parsejson</a></li>
|
|
<li><a class="reference external" href="jsonutils.html">std/jsonutils</a></li>
|
|
<li><a class="reference external" href="marshal.html">std/marshal</a></li>
|
|
<li><a class="reference external" href="jscore.html">std/jscore</a></li>
|
|
</ul>
|
|
|
|
<h1><a class="toc-backref" id="overview" href="#overview">Overview</a></h1>
|
|
<h2><a class="toc-backref" id="overview-parsing-json" href="#overview-parsing-json">Parsing JSON</a></h2><p>JSON often arrives into your program (via an API or a file) as a <tt class="docutils literal"><span class="pre"><span class="Identifier">string</span></span></tt>. The first step is to change it from its serialized form into a nested object structure called a <tt class="docutils literal"><span class="pre"><span class="Identifier">JsonNode</span></span></tt>.</p>
|
|
<p>The <tt class="docutils literal"><span class="pre"><span class="Identifier">parseJson</span></span></tt> procedure takes a string containing JSON and returns a <tt class="docutils literal"><span class="pre"><span class="Identifier">JsonNode</span></span></tt> object. This is an object variant and it is either a <tt class="docutils literal"><span class="pre"><span class="Identifier">JObject</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">JArray</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">JString</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">JInt</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">JFloat</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">JBool</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Identifier">JNull</span></span></tt>. You check the kind of this object variant by using the <tt class="docutils literal"><span class="pre"><span class="Identifier">kind</span></span></tt> accessor.</p>
|
|
<p>For a <tt class="docutils literal"><span class="pre"><span class="Identifier">JsonNode</span></span></tt> who's kind is <tt class="docutils literal"><span class="pre"><span class="Identifier">JObject</span></span></tt>, you can access its fields using the <tt class="docutils literal"><span class="pre"><span class="Punctuation">[</span><span class="Punctuation">]</span></span></tt> operator. The following example shows how to do this:</p>
|
|
<p><pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">json</span>
|
|
|
|
<span class="Keyword">let</span> <span class="Identifier">jsonNode</span> <span class="Operator">=</span> <span class="Identifier">parseJson</span><span class="Punctuation">(</span><span class="LongStringLit">"""{"key": 3.14}"""</span><span class="Punctuation">)</span>
|
|
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">jsonNode</span><span class="Operator">.</span><span class="Identifier">kind</span> <span class="Operator">==</span> <span class="Identifier">JObject</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">jsonNode</span><span class="Punctuation">[</span><span class="StringLit">"key"</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">kind</span> <span class="Operator">==</span> <span class="Identifier">JFloat</span></pre></p>
|
|
|
|
<h2><a class="toc-backref" id="overview-reading-values" href="#overview-reading-values">Reading values</a></h2><p>Once you have a <tt class="docutils literal"><span class="pre"><span class="Identifier">JsonNode</span></span></tt>, retrieving the values can then be achieved by using one of the helper procedures, which include:</p>
|
|
<ul class="simple"><li><tt class="docutils literal"><span class="pre"><span class="Identifier">getInt</span></span></tt></li>
|
|
<li><tt class="docutils literal"><span class="pre"><span class="Identifier">getFloat</span></span></tt></li>
|
|
<li><tt class="docutils literal"><span class="pre"><span class="Identifier">getStr</span></span></tt></li>
|
|
<li><tt class="docutils literal"><span class="pre"><span class="Identifier">getBool</span></span></tt></li>
|
|
</ul>
|
|
<p>To retrieve the value of <tt class="docutils literal"><span class="pre"><span class="StringLit">"key"</span></span></tt> you can do the following:</p>
|
|
<p><pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">json</span>
|
|
|
|
<span class="Keyword">let</span> <span class="Identifier">jsonNode</span> <span class="Operator">=</span> <span class="Identifier">parseJson</span><span class="Punctuation">(</span><span class="LongStringLit">"""{"key": 3.14}"""</span><span class="Punctuation">)</span>
|
|
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">jsonNode</span><span class="Punctuation">[</span><span class="StringLit">"key"</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">getFloat</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">3.14</span></pre></p>
|
|
<p><strong>Important:</strong> The <tt class="docutils literal"><span class="pre"><span class="Punctuation">[</span><span class="Punctuation">]</span></span></tt> operator will raise an exception when the specified field does not exist.</p>
|
|
|
|
<h2><a class="toc-backref" id="overview-handling-optional-keys" href="#overview-handling-optional-keys">Handling optional keys</a></h2><p>By using the <tt class="docutils literal"><span class="pre"><span class="Punctuation">{</span><span class="Punctuation">}</span></span></tt> operator instead of <tt class="docutils literal"><span class="pre"><span class="Punctuation">[</span><span class="Punctuation">]</span></span></tt>, it will return <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt> when the field is not found. The <tt class="docutils literal"><span class="pre"><span class="Identifier">get</span></span></tt>-family of procedures will return a type's default value when called on <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt>.</p>
|
|
<p><pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">json</span>
|
|
|
|
<span class="Keyword">let</span> <span class="Identifier">jsonNode</span> <span class="Operator">=</span> <span class="Identifier">parseJson</span><span class="Punctuation">(</span><span class="StringLit">"{}"</span><span class="Punctuation">)</span>
|
|
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">jsonNode</span><span class="Punctuation">{</span><span class="StringLit">"nope"</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">getInt</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">jsonNode</span><span class="Punctuation">{</span><span class="StringLit">"nope"</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">getFloat</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">jsonNode</span><span class="Punctuation">{</span><span class="StringLit">"nope"</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">getStr</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">""</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">jsonNode</span><span class="Punctuation">{</span><span class="StringLit">"nope"</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">getBool</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">false</span></pre></p>
|
|
|
|
<h2><a class="toc-backref" id="overview-using-default-values" href="#overview-using-default-values">Using default values</a></h2><p>The <tt class="docutils literal"><span class="pre"><span class="Identifier">get</span></span></tt>-family helpers also accept an additional parameter which allow you to fallback to a default value should the key's values be <tt class="docutils literal"><span class="pre"><span class="Identifier">null</span></span></tt>:</p>
|
|
<p><pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">json</span>
|
|
|
|
<span class="Keyword">let</span> <span class="Identifier">jsonNode</span> <span class="Operator">=</span> <span class="Identifier">parseJson</span><span class="Punctuation">(</span><span class="LongStringLit">"""{"key": 3.14, "key2": null}"""</span><span class="Punctuation">)</span>
|
|
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">jsonNode</span><span class="Punctuation">[</span><span class="StringLit">"key"</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">getFloat</span><span class="Punctuation">(</span><span class="FloatNumber">6.28</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">3.14</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">jsonNode</span><span class="Punctuation">[</span><span class="StringLit">"key2"</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">getFloat</span><span class="Punctuation">(</span><span class="FloatNumber">3.14</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">3.14</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">jsonNode</span><span class="Punctuation">{</span><span class="StringLit">"nope"</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">getFloat</span><span class="Punctuation">(</span><span class="FloatNumber">3.14</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">3.14</span> <span class="Comment"># note the {}</span></pre></p>
|
|
|
|
<h2><a class="toc-backref" id="overview-unmarshalling" href="#overview-unmarshalling">Unmarshalling</a></h2><p>In addition to reading dynamic data, Nim can also unmarshal JSON directly into a type with the <tt class="docutils literal"><span class="pre"><span class="Identifier">to</span></span></tt> macro.</p>
|
|
<p>Note: Use <a class="reference external" href="options.html#Option">Option</a> for keys sometimes missing in json responses, and backticks around keys with a reserved keyword as name.</p>
|
|
<p><pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">json</span>
|
|
<span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">options</span>
|
|
|
|
<span class="Keyword">type</span>
|
|
<span class="Identifier">User</span> <span class="Operator">=</span> <span class="Keyword">object</span>
|
|
<span class="Identifier">name</span><span class="Punctuation">:</span> <span class="Identifier">string</span>
|
|
<span class="Identifier">age</span><span class="Punctuation">:</span> <span class="Identifier">int</span>
|
|
<span class="Punctuation">`</span><span class="Keyword">type</span><span class="Punctuation">`</span><span class="Punctuation">:</span> <span class="Identifier">Option</span><span class="Punctuation">[</span><span class="Identifier">string</span><span class="Punctuation">]</span>
|
|
|
|
<span class="Keyword">let</span> <span class="Identifier">userJson</span> <span class="Operator">=</span> <span class="Identifier">parseJson</span><span class="Punctuation">(</span><span class="LongStringLit">"""{ "name": "Nim", "age": 12 }"""</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">let</span> <span class="Identifier">user</span> <span class="Operator">=</span> <span class="Identifier">to</span><span class="Punctuation">(</span><span class="Identifier">userJson</span><span class="Punctuation">,</span> <span class="Identifier">User</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">if</span> <span class="Identifier">user</span><span class="Operator">.</span><span class="Punctuation">`</span><span class="Keyword">type</span><span class="Punctuation">`</span><span class="Operator">.</span><span class="Identifier">isSome</span><span class="Punctuation">(</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">user</span><span class="Operator">.</span><span class="Punctuation">`</span><span class="Keyword">type</span><span class="Punctuation">`</span><span class="Operator">.</span><span class="Identifier">get</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">!=</span> <span class="StringLit">"robot"</span></pre></p>
|
|
|
|
<h1><a class="toc-backref" id="creating-json" href="#creating-json">Creating JSON</a></h1><p>This module can also be used to comfortably create JSON using the <tt class="docutils literal"><span class="pre"><span class="Operator">%*</span></span></tt> operator:</p>
|
|
<p><pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">json</span>
|
|
|
|
<span class="Keyword">var</span> <span class="Identifier">hisName</span> <span class="Operator">=</span> <span class="StringLit">"John"</span>
|
|
<span class="Keyword">let</span> <span class="Identifier">herAge</span> <span class="Operator">=</span> <span class="DecNumber">31</span>
|
|
<span class="Keyword">var</span> <span class="Identifier">j</span> <span class="Operator">=</span> <span class="Operator">%*</span>
|
|
<span class="Punctuation">[</span>
|
|
<span class="Punctuation">{</span> <span class="StringLit">"name"</span><span class="Punctuation">:</span> <span class="Identifier">hisName</span><span class="Punctuation">,</span> <span class="StringLit">"age"</span><span class="Punctuation">:</span> <span class="DecNumber">30</span> <span class="Punctuation">}</span><span class="Punctuation">,</span>
|
|
<span class="Punctuation">{</span> <span class="StringLit">"name"</span><span class="Punctuation">:</span> <span class="StringLit">"Susan"</span><span class="Punctuation">,</span> <span class="StringLit">"age"</span><span class="Punctuation">:</span> <span class="Identifier">herAge</span> <span class="Punctuation">}</span>
|
|
<span class="Punctuation">]</span>
|
|
|
|
<span class="Keyword">var</span> <span class="Identifier">j2</span> <span class="Operator">=</span> <span class="Operator">%*</span> <span class="Punctuation">{</span><span class="StringLit">"name"</span><span class="Punctuation">:</span> <span class="StringLit">"Isaac"</span><span class="Punctuation">,</span> <span class="StringLit">"books"</span><span class="Punctuation">:</span> <span class="Punctuation">[</span><span class="StringLit">"Robot Dreams"</span><span class="Punctuation">]</span><span class="Punctuation">}</span>
|
|
<span class="Identifier">j2</span><span class="Punctuation">[</span><span class="StringLit">"details"</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="Operator">%*</span> <span class="Punctuation">{</span><span class="StringLit">"age"</span><span class="Punctuation">:</span><span class="DecNumber">35</span><span class="Punctuation">,</span> <span class="StringLit">"pi"</span><span class="Punctuation">:</span><span class="FloatNumber">3.1415</span><span class="Punctuation">}</span>
|
|
<span class="Identifier">echo</span> <span class="Identifier">j2</span></pre></p>
|
|
<p>See also: std/jsonutils for hookable json serialization/deserialization of arbitrary types.</p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">json</span>
|
|
<span class="Comment">## Note: for JObject, key ordering is preserved, unlike in some languages,</span>
|
|
<span class="Comment">## this is convenient for some use cases. Example:</span>
|
|
<span class="Keyword">type</span> <span class="Identifier">Foo</span> <span class="Operator">=</span> <span class="Keyword">object</span>
|
|
<span class="Identifier">a1</span><span class="Punctuation">,</span> <span class="Identifier">a2</span><span class="Punctuation">,</span> <span class="Identifier">a0</span><span class="Punctuation">,</span> <span class="Identifier">a3</span><span class="Punctuation">,</span> <span class="Identifier">a4</span><span class="Punctuation">:</span> <span class="Identifier">int</span>
|
|
<span class="Identifier">doAssert</span> <span class="Operator">$</span><span class="Punctuation">(</span><span class="Operator">%*</span> <span class="Identifier">Foo</span><span class="Punctuation">(</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="LongStringLit">"""{"a1":0,"a2":0,"a0":0,"a3":0,"a4":0}"""</span></pre></p>
|
|
<div class="section" id="6">
|
|
<h1><a class="toc-backref" href="#6">Imports</a></h1>
|
|
<dl class="item">
|
|
<a class="reference external" href="hashes.html">hashes</a>, <a class="reference external" href="tables.html">tables</a>, <a class="reference external" href="strutils.html">strutils</a>, <a class="reference external" href="lexbase.html">lexbase</a>, <a class="reference external" href="streams.html">streams</a>, <a class="reference external" href="macros.html">macros</a>, <a class="reference external" href="parsejson.html">parsejson</a>, <a class="reference external" href="options.html">options</a>, <a class="reference external" href="since.html">since</a>, <a class="reference external" href="syncio.html">syncio</a>, <a class="reference external" href="assertions.html">assertions</a>, <a class="reference external" href="formatfloat.html">formatfloat</a>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="7">
|
|
<h1><a class="toc-backref" href="#7">Types</a></h1>
|
|
<dl class="item">
|
|
<div id="JsonNode">
|
|
<dt><pre><a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="json.html#JsonNodeObj"><span class="Identifier">JsonNodeObj</span></a></pre></dt>
|
|
<dd>
|
|
|
|
JSON node
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L194" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L194" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="JsonNodeKind">
|
|
<dt><pre><a href="json.html#JsonNodeKind"><span class="Identifier">JsonNodeKind</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
|
|
<span class="Identifier">JNull</span><span class="Other">,</span> <span class="Identifier">JBool</span><span class="Other">,</span> <span class="Identifier">JInt</span><span class="Other">,</span> <span class="Identifier">JFloat</span><span class="Other">,</span> <span class="Identifier">JString</span><span class="Other">,</span> <span class="Identifier">JObject</span><span class="Other">,</span> <span class="Identifier">JArray</span></pre></dt>
|
|
<dd>
|
|
|
|
possible JSON node types
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L185" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L185" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="JsonNodeObj">
|
|
<dt><pre><a href="json.html#JsonNodeObj"><span class="Identifier">JsonNodeObj</span></a> {.<span class="Identifier">acyclic</span>.} <span class="Other">=</span> <span class="Keyword">object</span>
|
|
<span class="Keyword">case</span> <span class="Identifier">kind</span><span class="Operator">*</span><span class="Other">:</span> <a href="json.html#JsonNodeKind"><span class="Identifier">JsonNodeKind</span></a>
|
|
<span class="Keyword">of</span> <span class="Identifier">JString</span><span class="Other">:</span>
|
|
<span class="Identifier">str</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a>
|
|
<span class="Keyword">of</span> <span class="Identifier">JInt</span><span class="Other">:</span>
|
|
<span class="Identifier">num</span><span class="Operator">*</span><span class="Other">:</span> <a href="ctypes.html#BiggestInt"><span class="Identifier">BiggestInt</span></a>
|
|
<span class="Keyword">of</span> <span class="Identifier">JFloat</span><span class="Other">:</span>
|
|
<span class="Identifier">fnum</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a>
|
|
<span class="Keyword">of</span> <span class="Identifier">JBool</span><span class="Other">:</span>
|
|
<span class="Identifier">bval</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a>
|
|
<span class="Keyword">of</span> <span class="Identifier">JNull</span><span class="Other">:</span>
|
|
<span class="Keyword">nil</span>
|
|
<span class="Keyword">of</span> <span class="Identifier">JObject</span><span class="Other">:</span>
|
|
<span class="Identifier">fields</span><span class="Operator">*</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">]</span>
|
|
<span class="Keyword">of</span> <span class="Identifier">JArray</span><span class="Other">:</span>
|
|
<span class="Identifier">elems</span><span class="Operator">*</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L195" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L195" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="12">
|
|
<h1><a class="toc-backref" href="#12">Procs</a></h1>
|
|
<dl class="item">
|
|
<div id="$-procs-all">
|
|
<div id="$,JsonNode">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%24%2CJsonNode"><span class="Identifier">`$`</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Converts <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt> to its JSON Representation on one line.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L827" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L827" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="%-procs-all">
|
|
<div id="%,bool">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%25%2Cbool"><span class="Identifier">`%`</span></a><span class="Other">(</span><span class="Identifier">b</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Generic constructor for JSON data. Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JBool</span> <span class="Identifier">JsonNode</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L354" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L354" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="%,openArray[tuple[string,JsonNode]]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%25%2CopenArray%5Btuple%5Bstring%2CJsonNode%5D%5D"><span class="Identifier">`%`</span></a><span class="Other">(</span><span class="Identifier">keyVals</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">]</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Generic constructor for JSON data. Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JObject</span> <span class="Identifier">JsonNode</span></span></tt>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L358" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L358" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="%,BiggestInt">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%25%2CBiggestInt"><span class="Identifier">`%`</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ctypes.html#BiggestInt"><span class="Identifier">BiggestInt</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Generic constructor for JSON data. Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JInt</span> <span class="Identifier">JsonNode</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L337" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L337" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="%,BiggestUInt">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%25%2CBiggestUInt"><span class="Identifier">`%`</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ctypes.html#BiggestUInt"><span class="Identifier">BiggestUInt</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Generic constructor for JSON data. Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JInt</span> <span class="Identifier">JsonNode</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L330" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L330" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="%,float">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%25%2Cfloat"><span class="Identifier">`%`</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Generic constructor for JSON data. Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JFloat</span> <span class="Identifier">JsonNode</span></span></tt>.
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Identifier">assert</span> <span class="Operator">$</span><span class="Punctuation">(</span><span class="Operator">%</span><span class="Punctuation">[</span><span class="Identifier">NaN</span><span class="Punctuation">,</span> <span class="Identifier">Inf</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="Identifier">Inf</span><span class="Punctuation">,</span> <span class="FloatNumber">0.0</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="FloatNumber">0.0</span><span class="Punctuation">,</span> <span class="FloatNumber">1.0</span><span class="Punctuation">,</span> <span class="FloatNumber">1e-2</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="LongStringLit">"""["nan","inf","-inf",0.0,-0.0,1.0,0.01]"""</span>
|
|
<span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="Operator">%</span><span class="Identifier">NaN</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">kind</span> <span class="Operator">==</span> <span class="Identifier">JString</span>
|
|
<span class="Identifier">assert</span> <span class="Punctuation">(</span><span class="Operator">%</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">kind</span> <span class="Operator">==</span> <span class="Identifier">JFloat</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L341" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L341" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="%,int">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%25%2Cint"><span class="Identifier">`%`</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Generic constructor for JSON data. Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JInt</span> <span class="Identifier">JsonNode</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L326" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L326" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="%,uint">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%25%2Cuint"><span class="Identifier">`%`</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="system.html#uint"><span class="Identifier">uint</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Generic constructor for JSON data. Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JInt</span> <span class="Identifier">JsonNode</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L319" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L319" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="%_2">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%25_2"><span class="Identifier">`%`</span></a><span class="Other">(</span><span class="Identifier">o</span><span class="Other">:</span> <span class="Keyword">enum</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Construct a JsonNode that represents the specified enum value as a string. Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JString</span> <span class="Identifier">JsonNode</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L411" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L411" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="%,ref.">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%25%2Cref."><span class="Identifier">`%`</span></a><span class="Other">(</span><span class="Identifier">o</span><span class="Other">:</span> <span class="Keyword">ref</span> <span class="Keyword">object</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Generic constructor for JSON data. Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JObject</span> <span class="Identifier">JsonNode</span></span></tt>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L404" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L404" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="%,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%25%2Cstring"><span class="Identifier">`%`</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Generic constructor for JSON data. Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JString</span> <span class="Identifier">JsonNode</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L315" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L315" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="%,T">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%25%2CT"><span class="Identifier">`%`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">object</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">o</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Construct JsonNode from tuples and objects.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L399" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L399" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="%,openArray[T]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%25%2CopenArray%5BT%5D"><span class="Identifier">`%`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">elements</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Generic constructor for JSON data. Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JArray</span> <span class="Identifier">JsonNode</span></span></tt>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L366" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L366" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="%,Option[T]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%25%2COption%5BT%5D"><span class="Identifier">`%`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">opt</span><span class="Other">:</span> <a href="options.html#Option"><span class="Identifier">Option</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Generic constructor for JSON data. Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JNull</span> <span class="Identifier">JsonNode</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">opt</span></span></tt> is empty, otherwise it delegates to the underlying value.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L376" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L376" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="%">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%25"><span class="Identifier">`%`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">table</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span> <span class="Operator">|</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Generic constructor for JSON data. Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JObject</span> <span class="Identifier">JsonNode</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L371" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L371" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="==-procs-all">
|
|
<div id="==,JsonNode,JsonNode">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CJsonNode%2CJsonNode"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Check two nodes for equality
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L447" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L447" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="[]-procs-all">
|
|
<div id="[],JsonNode,BackwardsIndex">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CJsonNode%2CBackwardsIndex"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">index</span><span class="Other">:</span> <a href="system.html#BackwardsIndex"><span class="Identifier">BackwardsIndex</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
<p>Gets the node at <tt class="docutils literal"><span class="pre"><span class="Identifier">array</span><span class="Operator">.</span><span class="Identifier">len</span><span class="Operator">-</span><span class="Identifier">i</span></span></tt> in an array through the <tt class="docutils literal"><span class="pre"><span class="Operator">^</span></span></tt> operator.</p>
|
|
<p>i.e. <tt class="docutils literal"><span class="pre"><span class="Identifier">j</span><span class="Punctuation">[</span><span class="Operator">^</span><span class="Identifier">i</span><span class="Punctuation">]</span></span></tt> is a shortcut for <tt class="docutils literal"><span class="pre"><span class="Identifier">j</span><span class="Punctuation">[</span><span class="Identifier">j</span><span class="Operator">.</span><span class="Identifier">len</span><span class="Operator">-</span><span class="Identifier">i</span><span class="Punctuation">]</span></span></tt>.</p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span>
|
|
<span class="Identifier">j</span> <span class="Operator">=</span> <span class="Identifier">parseJson</span><span class="Punctuation">(</span><span class="StringLit">"[1,2,3,4,5]"</span><span class="Punctuation">)</span>
|
|
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">j</span><span class="Punctuation">[</span><span class="Operator">^</span><span class="DecNumber">1</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">getInt</span> <span class="Operator">==</span> <span class="DecNumber">5</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">j</span><span class="Punctuation">[</span><span class="Operator">^</span><span class="DecNumber">2</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">getInt</span> <span class="Operator">==</span> <span class="DecNumber">4</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L535" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L535" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[],JsonNode,int">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CJsonNode%2Cint"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">index</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Gets the node at <tt class="docutils literal"><span class="pre"><span class="Identifier">index</span></span></tt> in an Array. Result is undefined if <tt class="docutils literal"><span class="pre"><span class="Identifier">index</span></span></tt> is out of bounds, but as long as array bound checks are enabled it will result in an exception.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L527" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L527" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[],JsonNode,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CJsonNode%2Cstring"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">name</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Gets a field from a <tt class="docutils literal"><span class="pre"><span class="Identifier">JObject</span></span></tt>, which must not be nil. If the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">name</span></span></tt> does not exist, raises KeyError.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L518" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L518" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[],JsonNode,HSlice[U,V]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CJsonNode%2CHSlice%5BU%2CV%5D"><span class="Identifier">`[]`</span></a><span class="Other">[</span><span class="Identifier">U</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#HSlice"><span class="Identifier">HSlice</span></a><span class="Other">[</span><span class="Identifier">U</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Slice operation for JArray.</p>
|
|
<p>Returns the inclusive range <tt class="docutils literal"><span class="pre"><span class="Punctuation">[</span><span class="Identifier">a</span><span class="Punctuation">[</span><span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">a</span><span class="Punctuation">]</span><span class="Punctuation">,</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">b</span><span class="Punctuation">]</span><span class="Punctuation">]</span></span></tt>:</p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">json</span>
|
|
<span class="Keyword">let</span> <span class="Identifier">arr</span> <span class="Operator">=</span> <span class="Operator">%</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">,</span><span class="DecNumber">1</span><span class="Punctuation">,</span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="DecNumber">4</span><span class="Punctuation">,</span><span class="DecNumber">5</span><span class="Punctuation">]</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">arr</span><span class="Punctuation">[</span><span class="FloatNumber">2.</span><span class="Operator">.</span><span class="DecNumber">4</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="Operator">%</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="DecNumber">4</span><span class="Punctuation">]</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">arr</span><span class="Punctuation">[</span><span class="FloatNumber">2.</span><span class="Operator">.^</span><span class="DecNumber">2</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="Operator">%</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="DecNumber">4</span><span class="Punctuation">]</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">arr</span><span class="Punctuation">[</span><span class="Operator">^</span><span class="FloatNumber">4.</span><span class="Operator">.^</span><span class="DecNumber">2</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="Operator">%</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span><span class="DecNumber">3</span><span class="Punctuation">,</span><span class="DecNumber">4</span><span class="Punctuation">]</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L548" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L548" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="[]=-procs-all">
|
|
<div id="[]=,JsonNode,string,JsonNode">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CJsonNode%2Cstring%2CJsonNode"><span class="Identifier">`[]=`</span></a><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Sets a field from a <tt class="docutils literal"><span class="pre"><span class="Identifier">JObject</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L394" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L394" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="add-procs-all">
|
|
<div id="add,JsonNode,JsonNode">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#add%2CJsonNode%2CJsonNode"><span class="Identifier">add</span></a><span class="Other">(</span><span class="Identifier">father</span><span class="Other">,</span> <span class="Identifier">child</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Adds <tt class="docutils literal"><span class="pre"><span class="Identifier">child</span></span></tt> to a JArray node <tt class="docutils literal"><span class="pre"><span class="Identifier">father</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L305" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L305" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="add,JsonNode,string,JsonNode">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#add%2CJsonNode%2Cstring%2CJsonNode"><span class="Identifier">add</span></a><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Sets a field from a <tt class="docutils literal"><span class="pre"><span class="Identifier">JObject</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L310" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L310" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="contains-procs-all">
|
|
<div id="contains,JsonNode,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#contains%2CJsonNode%2Cstring"><span class="Identifier">contains</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Checks if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> exists in <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L571" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L571" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="contains,JsonNode,JsonNode">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#contains%2CJsonNode%2CJsonNode"><span class="Identifier">contains</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Checks if <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> exists in array <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L576" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L576" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="copy-procs-all">
|
|
<div id="copy,JsonNode">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#copy%2CJsonNode"><span class="Identifier">copy</span></a><span class="Other">(</span><span class="Identifier">p</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Performs a deep copy of <tt class="docutils literal"><span class="pre"><span class="Identifier">p</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L639" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L639" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="delete-procs-all">
|
|
<div id="delete,JsonNode,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#delete%2CJsonNode%2Cstring"><span class="Identifier">delete</span></a><span class="Other">(</span><span class="Identifier">obj</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Deletes <tt class="docutils literal"><span class="pre"><span class="Identifier">obj</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L632" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L632" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="escapeJson-procs-all">
|
|
<div id="escapeJson,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#escapeJson%2Cstring"><span class="Identifier">escapeJson</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Converts a string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> to its JSON representation with quotes.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L703" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L703" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="escapeJson,string,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#escapeJson%2Cstring%2Cstring"><span class="Identifier">escapeJson</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Converts a string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> to its JSON representation with quotes. Appends to <tt class="docutils literal"><span class="pre"><span class="Identifier">result</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L696" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L696" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="escapeJsonUnquoted-procs-all">
|
|
<div id="escapeJsonUnquoted,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#escapeJsonUnquoted%2Cstring"><span class="Identifier">escapeJsonUnquoted</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Converts a string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> to its JSON representation without quotes.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L691" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L691" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="escapeJsonUnquoted,string,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#escapeJsonUnquoted%2Cstring%2Cstring"><span class="Identifier">escapeJsonUnquoted</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Converts a string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> to its JSON representation without quotes. Appends to <tt class="docutils literal"><span class="pre"><span class="Identifier">result</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L674" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L674" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getBiggestInt-procs-all">
|
|
<div id="getBiggestInt,JsonNode,BiggestInt">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getBiggestInt%2CJsonNode%2CBiggestInt"><span class="Identifier">getBiggestInt</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">default</span><span class="Other">:</span> <a href="ctypes.html#BiggestInt"><span class="Identifier">BiggestInt</span></a> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">)</span><span class="Other">:</span> <a href="ctypes.html#BiggestInt"><span class="Identifier">BiggestInt</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the BiggestInt value of a <tt class="docutils literal"><span class="pre"><span class="Identifier">JInt</span> <span class="Identifier">JsonNode</span></span></tt>.</p>
|
|
<p>Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">default</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is not a <tt class="docutils literal"><span class="pre"><span class="Identifier">JInt</span></span></tt>, or if <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is nil.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L265" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L265" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getBool-procs-all">
|
|
<div id="getBool,JsonNode,bool">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getBool%2CJsonNode%2Cbool"><span class="Identifier">getBool</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">default</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the bool value of a <tt class="docutils literal"><span class="pre"><span class="Identifier">JBool</span> <span class="Identifier">JsonNode</span></span></tt>.</p>
|
|
<p>Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">default</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is not a <tt class="docutils literal"><span class="pre"><span class="Identifier">JBool</span></span></tt>, or if <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is nil.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L282" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L282" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getElems-procs-all">
|
|
<div id="getElems,JsonNode,seq[JsonNode]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getElems%2CJsonNode%2Cseq%5BJsonNode%5D"><span class="Identifier">getElems</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">default</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">]</span> <span class="Other">=</span> <span class="Operator">@</span><span class="Other">[</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">]</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the array of a <tt class="docutils literal"><span class="pre"><span class="Identifier">JArray</span> <span class="Identifier">JsonNode</span></span></tt>.</p>
|
|
<p>Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">default</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is not a <tt class="docutils literal"><span class="pre"><span class="Identifier">JArray</span></span></tt>, or if <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is nil.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L298" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L298" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getFields-procs-all">
|
|
<div id="getFields,JsonNode">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getFields%2CJsonNode"><span class="Identifier">getFields</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">default</span> <span class="Other">=</span> <span class="Identifier">initOrderedTable</span><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">]</span><span class="Other">(</span><span class="DecNumber">2</span><span class="Other">)</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span>
|
|
<a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">]</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the key, value pairs of a <tt class="docutils literal"><span class="pre"><span class="Identifier">JObject</span> <span class="Identifier">JsonNode</span></span></tt>.</p>
|
|
<p>Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">default</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is not a <tt class="docutils literal"><span class="pre"><span class="Identifier">JObject</span></span></tt>, or if <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is nil.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L289" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L289" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getFloat-procs-all">
|
|
<div id="getFloat,JsonNode,float">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getFloat%2CJsonNode%2Cfloat"><span class="Identifier">getFloat</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">default</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a> <span class="Other">=</span> <span class="FloatNumber">0.0</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the float value of a <tt class="docutils literal"><span class="pre"><span class="Identifier">JFloat</span> <span class="Identifier">JsonNode</span></span></tt>.</p>
|
|
<p>Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">default</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is not a <tt class="docutils literal"><span class="pre"><span class="Identifier">JFloat</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Identifier">JInt</span></span></tt>, or if <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is nil.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L272" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L272" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getInt-procs-all">
|
|
<div id="getInt,JsonNode,int">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getInt%2CJsonNode%2Cint"><span class="Identifier">getInt</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">default</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the int value of a <tt class="docutils literal"><span class="pre"><span class="Identifier">JInt</span> <span class="Identifier">JsonNode</span></span></tt>.</p>
|
|
<p>Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">default</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is not a <tt class="docutils literal"><span class="pre"><span class="Identifier">JInt</span></span></tt>, or if <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is nil.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L258" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L258" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getOrDefault-procs-all">
|
|
<div id="getOrDefault,JsonNode,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getOrDefault%2CJsonNode%2Cstring"><span class="Identifier">getOrDefault</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Gets a field from a <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt> is nil or not an object or value at <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> does not exist, returns nil
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L609" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L609" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getStr-procs-all">
|
|
<div id="getStr,JsonNode,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getStr%2CJsonNode%2Cstring"><span class="Identifier">getStr</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">default</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">""</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the string value of a <tt class="docutils literal"><span class="pre"><span class="Identifier">JString</span> <span class="Identifier">JsonNode</span></span></tt>.</p>
|
|
<p>Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">default</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is not a <tt class="docutils literal"><span class="pre"><span class="Identifier">JString</span></span></tt>, or if <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is nil.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L251" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L251" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="hash-procs-all">
|
|
<div id="hash,JsonNode">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hash%2CJsonNode"><span class="Identifier">hash</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="hashes.html#Hash"><span class="Identifier">Hash</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Compute the hash for a JSON node
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L485" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L485" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="hash,OrderedTable[string,JsonNode]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hash%2COrderedTable%5Bstring%2CJsonNode%5D"><span class="Identifier">hash</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="hashes.html#Hash"><span class="Identifier">Hash</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span>
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L483" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L483" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="hasKey-procs-all">
|
|
<div id="hasKey,JsonNode,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hasKey%2CJsonNode%2Cstring"><span class="Identifier">hasKey</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Checks if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> exists in <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L566" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L566" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="len-procs-all">
|
|
<div id="len,JsonNode">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#len%2CJsonNode"><span class="Identifier">len</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
If <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is a <tt class="docutils literal"><span class="pre"><span class="Identifier">JArray</span></span></tt>, it returns the number of elements. If <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> is a <tt class="docutils literal"><span class="pre"><span class="Identifier">JObject</span></span></tt>, it returns the number of pairs. Else it returns 0.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L509" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L509" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="newJArray-procs-all">
|
|
<div id="newJArray">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newJArray"><span class="Identifier">newJArray</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JArray</span> <span class="Identifier">JsonNode</span></span></tt>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L247" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L247" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="newJBool-procs-all">
|
|
<div id="newJBool,bool">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newJBool%2Cbool"><span class="Identifier">newJBool</span></a><span class="Other">(</span><span class="Identifier">b</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JBool</span> <span class="Identifier">JsonNode</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L235" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L235" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="newJFloat-procs-all">
|
|
<div id="newJFloat,float">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newJFloat%2Cfloat"><span class="Identifier">newJFloat</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JFloat</span> <span class="Identifier">JsonNode</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L231" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L231" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="newJInt-procs-all">
|
|
<div id="newJInt,BiggestInt">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newJInt%2CBiggestInt"><span class="Identifier">newJInt</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="ctypes.html#BiggestInt"><span class="Identifier">BiggestInt</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JInt</span> <span class="Identifier">JsonNode</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L227" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L227" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="newJNull-procs-all">
|
|
<div id="newJNull">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newJNull"><span class="Identifier">newJNull</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JNull</span> <span class="Identifier">JsonNode</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L239" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L239" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="newJObject-procs-all">
|
|
<div id="newJObject">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newJObject"><span class="Identifier">newJObject</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JObject</span> <span class="Identifier">JsonNode</span></span></tt>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L243" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L243" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="newJString-procs-all">
|
|
<div id="newJString,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newJString%2Cstring"><span class="Identifier">newJString</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Creates a new <tt class="docutils literal"><span class="pre"><span class="Identifier">JString</span> <span class="Identifier">JsonNode</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L216" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L216" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="parseFile-procs-all">
|
|
<div id="parseFile,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#parseFile%2Cstring"><span class="Identifier">parseFile</span></a><span class="Other">(</span><span class="Identifier">filename</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">JsonParsingError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Parses <tt class="docutils literal"><span class="pre"><span class="Identifier">file</span></span></tt> into a <tt class="docutils literal"><span class="pre"><span class="Identifier">JsonNode</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">file</span></span></tt> contains extra data, it will raise <tt class="docutils literal"><span class="pre"><span class="Identifier">JsonParsingError</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L1052" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L1052" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="parseJson-procs-all">
|
|
<div id="parseJson,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#parseJson%2Cstring"><span class="Identifier">parseJson</span></a><span class="Other">(</span><span class="Identifier">buffer</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">rawIntegers</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">;</span> <span class="Identifier">rawFloats</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">JsonParsingError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Parses JSON from <tt class="docutils literal"><span class="pre"><span class="Identifier">buffer</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">buffer</span></span></tt> contains extra data, it will raise <tt class="docutils literal"><span class="pre"><span class="Identifier">JsonParsingError</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">rawIntegers</span></span></tt> is true, integer literals will not be converted to a <tt class="docutils literal"><span class="pre"><span class="Identifier">JInt</span></span></tt> field but kept as raw numbers via <tt class="docutils literal"><span class="pre"><span class="Identifier">JString</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">rawFloats</span></span></tt> is true, floating point literals will not be converted to a <tt class="docutils literal"><span class="pre"><span class="Identifier">JFloat</span></span></tt> field but kept as raw numbers via <tt class="docutils literal"><span class="pre"><span class="Identifier">JString</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L1043" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L1043" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="parseJson,Stream,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#parseJson%2CStream%2Cstring"><span class="Identifier">parseJson</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="streams.html#Stream"><span class="Identifier">Stream</span></a><span class="Other">;</span> <span class="Identifier">filename</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">""</span><span class="Other">;</span> <span class="Identifier">rawIntegers</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">;</span>
|
|
<span class="Identifier">rawFloats</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">JsonParsingError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Parses from a stream <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into a <tt class="docutils literal"><span class="pre"><span class="Identifier">JsonNode</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">filename</span></span></tt> is only needed for nice error messages. If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> contains extra data, it will raise <tt class="docutils literal"><span class="pre"><span class="Identifier">JsonParsingError</span></span></tt>. This closes the stream <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> after it's done. If <tt class="docutils literal"><span class="pre"><span class="Identifier">rawIntegers</span></span></tt> is true, integer literals will not be converted to a <tt class="docutils literal"><span class="pre"><span class="Identifier">JInt</span></span></tt> field but kept as raw numbers via <tt class="docutils literal"><span class="pre"><span class="Identifier">JString</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">rawFloats</span></span></tt> is true, floating point literals will not be converted to a <tt class="docutils literal"><span class="pre"><span class="Identifier">JFloat</span></span></tt> field but kept as raw numbers via <tt class="docutils literal"><span class="pre"><span class="Identifier">JString</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L952" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L952" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="pretty-procs-all">
|
|
<div id="pretty,JsonNode,int">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#pretty%2CJsonNode%2Cint"><span class="Identifier">pretty</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">indent</span> <span class="Other">=</span> <span class="DecNumber">2</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns a JSON Representation of <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt>, with indentation and on multiple lines.</p>
|
|
<p>Similar to prettyprint in Python.</p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">j</span> <span class="Operator">=</span> <span class="Operator">%*</span> <span class="Punctuation">{</span><span class="StringLit">"name"</span><span class="Punctuation">:</span> <span class="StringLit">"Isaac"</span><span class="Punctuation">,</span> <span class="StringLit">"books"</span><span class="Punctuation">:</span> <span class="Punctuation">[</span><span class="StringLit">"Robot Dreams"</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="StringLit">"details"</span><span class="Punctuation">:</span> <span class="Punctuation">{</span><span class="StringLit">"age"</span><span class="Punctuation">:</span> <span class="DecNumber">35</span><span class="Punctuation">,</span> <span class="StringLit">"pi"</span><span class="Punctuation">:</span> <span class="FloatNumber">3.1415</span><span class="Punctuation">}</span><span class="Punctuation">}</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">pretty</span><span class="Punctuation">(</span><span class="Identifier">j</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="LongStringLit">"""
|
|
{
|
|
"name": "Isaac",
|
|
"books": [
|
|
"Robot Dreams"
|
|
],
|
|
"details": {
|
|
"age": 35,
|
|
"pi": 3.1415
|
|
}
|
|
}"""</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L805" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L805" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="to-procs-all">
|
|
<div id="to,JsonNode,typedesc[T]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#to%2CJsonNode%2Ctypedesc%5BT%5D"><span class="Identifier">to</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="system.html#typedesc"><span class="Identifier">typedesc</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
|
|
<dd>
|
|
|
|
<p><span id="unmarshals_1">Unmarshals</span> the specified node into the object type specified.</p>
|
|
<p>Known limitations:</p>
|
|
<ul class="simple"><li>Heterogeneous arrays are not supported.</li>
|
|
<li>Sets in object variants are not supported.</li>
|
|
<li>Not nil annotations are not supported.</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">jsonNode</span> <span class="Operator">=</span> <span class="Identifier">parseJson</span><span class="Punctuation">(</span><span class="LongStringLit">"""
|
|
{
|
|
"person": {
|
|
"name": "Nimmer",
|
|
"age": 21
|
|
},
|
|
"list": [1, 2, 3, 4]
|
|
}
|
|
"""</span><span class="Punctuation">)</span>
|
|
|
|
<span class="Keyword">type</span>
|
|
<span class="Identifier">Person</span> <span class="Operator">=</span> <span class="Keyword">object</span>
|
|
<span class="Identifier">name</span><span class="Punctuation">:</span> <span class="Identifier">string</span>
|
|
<span class="Identifier">age</span><span class="Punctuation">:</span> <span class="Identifier">int</span>
|
|
|
|
<span class="Identifier">Data</span> <span class="Operator">=</span> <span class="Keyword">object</span>
|
|
<span class="Identifier">person</span><span class="Punctuation">:</span> <span class="Identifier">Person</span>
|
|
<span class="Identifier">list</span><span class="Punctuation">:</span> <span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span>
|
|
|
|
<span class="Keyword">var</span> <span class="Identifier">data</span> <span class="Operator">=</span> <span class="Identifier">to</span><span class="Punctuation">(</span><span class="Identifier">jsonNode</span><span class="Punctuation">,</span> <span class="Identifier">Data</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">data</span><span class="Operator">.</span><span class="Identifier">person</span><span class="Operator">.</span><span class="Identifier">name</span> <span class="Operator">==</span> <span class="StringLit">"Nimmer"</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">data</span><span class="Operator">.</span><span class="Identifier">person</span><span class="Operator">.</span><span class="Identifier">age</span> <span class="Operator">==</span> <span class="DecNumber">21</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">data</span><span class="Operator">.</span><span class="Identifier">list</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">]</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L1334" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L1334" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="toUgly-procs-all">
|
|
<div id="toUgly,string,JsonNode">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#toUgly%2Cstring%2CJsonNode"><span class="Identifier">toUgly</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
<p>Converts <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt> to its JSON Representation, without regard for human readability. Meant to improve <tt class="docutils literal"><span class="pre"><span class="Operator">$</span></span></tt> string conversion performance.</p>
|
|
<p>JSON representation is stored in the passed <tt class="docutils literal"><span class="pre"><span class="Identifier">result</span></span></tt></p>
|
|
<p>This provides higher efficiency than the <tt class="docutils literal"><span class="pre"><span class="Identifier">pretty</span></span></tt> procedure as it does <strong>not</strong> attempt to format the resulting JSON to make it human readable.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L708" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L708" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="{}-procs-all">
|
|
<div id="{},JsonNode,varargs[int]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%7B%7D%2CJsonNode%2Cvarargs%5Bint%5D"><span class="Identifier">`{}`</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">index</span><span class="Other">:</span> <a href="system.html#varargs"><span class="Identifier">varargs</span></a><span class="Other">[</span><a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Traverses the node and gets the given value. If any of the indexes do not exist, returns <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt>. Also returns <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt> if one of the intermediate data structures is not an array.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L599" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L599" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="{},JsonNode,string">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%7B%7D%2CJsonNode%2Cstring"><span class="Identifier">`{}`</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Gets a field from a <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt> is nil or not an object or value at <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> does not exist, returns nil
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L617" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L617" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="{},JsonNode,varargs[string]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%7B%7D%2CJsonNode%2Cvarargs%5Bstring%5D"><span class="Identifier">`{}`</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">keys</span><span class="Other">:</span> <a href="system.html#varargs"><span class="Identifier">varargs</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
<p>Traverses the node and gets the given value. If any of the keys do not exist, returns <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt>. Also returns <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt> if one of the intermediate data structures is not an object.</p>
|
|
<p>This proc can be used to create tree structures on the fly (sometimes called <span id="autovivification_1">autovivification</span>): </p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">myjson</span> <span class="Operator">=</span> <span class="Operator">%*</span> <span class="Punctuation">{</span><span class="StringLit">"parent"</span><span class="Punctuation">:</span> <span class="Punctuation">{</span><span class="StringLit">"child"</span><span class="Punctuation">:</span> <span class="Punctuation">{</span><span class="StringLit">"grandchild"</span><span class="Punctuation">:</span> <span class="DecNumber">1</span><span class="Punctuation">}</span><span class="Punctuation">}</span><span class="Punctuation">}</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">myjson</span><span class="Punctuation">{</span><span class="StringLit">"parent"</span><span class="Punctuation">,</span> <span class="StringLit">"child"</span><span class="Punctuation">,</span> <span class="StringLit">"grandchild"</span><span class="Punctuation">}</span> <span class="Operator">==</span> <span class="Identifier">newJInt</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L581" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L581" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="{}=-procs-all">
|
|
<div id="{}=,JsonNode,varargs[string],JsonNode">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%7B%7D%3D%2CJsonNode%2Cvarargs%5Bstring%5D%2CJsonNode"><span class="Identifier">`{}=`</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">;</span> <span class="Identifier">keys</span><span class="Other">:</span> <a href="system.html#varargs"><span class="Identifier">varargs</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">KeyError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Traverses the node and tries to set the value at the given location to <tt class="docutils literal"><span class="pre"><span class="Identifier">value</span></span></tt>. If any of the keys are missing, they are added.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L622" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L622" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="15">
|
|
<h1><a class="toc-backref" href="#15">Iterators</a></h1>
|
|
<dl class="item">
|
|
<div id="items-iterators-all">
|
|
<div id="items.i,JsonNode">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#items.i%2CJsonNode"><span class="Identifier">items</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Iterator for the items of <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt> has to be a JArray.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L832" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L832" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="keys-iterators-all">
|
|
<div id="keys.i,JsonNode">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#keys.i%2CJsonNode"><span class="Identifier">keys</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Iterator for the keys in <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt> has to be a JObject.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L851" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L851" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="mitems-iterators-all">
|
|
<div id="mitems.i,JsonNode">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#mitems.i%2CJsonNode"><span class="Identifier">mitems</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Iterator for the items of <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt> has to be a JArray. Items can be modified.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L838" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L838" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="mpairs-iterators-all">
|
|
<div id="mpairs.i,JsonNode">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#mpairs.i%2CJsonNode"><span class="Identifier">mpairs</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">]</span> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Iterator for the child elements of <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt> has to be a JObject. Values can be modified
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L857" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L857" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="pairs-iterators-all">
|
|
<div id="pairs.i,JsonNode">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#pairs.i%2CJsonNode"><span class="Identifier">pairs</span></a><span class="Other">(</span><span class="Identifier">node</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">]</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Iterator for the child elements of <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">node</span></span></tt> has to be a JObject.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L845" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L845" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="parseJsonFragments-iterators-all">
|
|
<div id="parseJsonFragments.i,Stream,string">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#parseJsonFragments.i%2CStream%2Cstring"><span class="Identifier">parseJsonFragments</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="streams.html#Stream"><span class="Identifier">Stream</span></a><span class="Other">;</span> <span class="Identifier">filename</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">""</span><span class="Other">;</span>
|
|
<span class="Identifier">rawIntegers</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">;</span> <span class="Identifier">rawFloats</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a> {.
|
|
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">,</span> <span class="Identifier">OSError</span><span class="Other">,</span> <span class="Identifier">JsonParsingError</span><span class="Other">,</span> <span class="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
|
|
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Parses from a stream <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into <tt class="docutils literal"><span class="pre"><span class="Identifier">JsonNodes</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">filename</span></span></tt> is only needed for nice error messages. The JSON fragments are separated by whitespace. This can be substantially faster than the comparable loop <tt class="docutils literal"><span class="pre"><span class="Keyword">for</span> <span class="Identifier">x</span> <span class="Keyword">in</span> <span class="Identifier">splitWhitespace</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Keyword">yield</span> <span class="Identifier">parseJson</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>. This closes the stream <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> after it's done. If <tt class="docutils literal"><span class="pre"><span class="Identifier">rawIntegers</span></span></tt> is true, integer literals will not be converted to a <tt class="docutils literal"><span class="pre"><span class="Identifier">JInt</span></span></tt> field but kept as raw numbers via <tt class="docutils literal"><span class="pre"><span class="Identifier">JString</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">rawFloats</span></span></tt> is true, floating point literals will not be converted to a <tt class="docutils literal"><span class="pre"><span class="Identifier">JFloat</span></span></tt> field but kept as raw numbers via <tt class="docutils literal"><span class="pre"><span class="Identifier">JString</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L932" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L932" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="17">
|
|
<h1><a class="toc-backref" href="#17">Macros</a></h1>
|
|
<dl class="item">
|
|
<div id="%*-macros-all">
|
|
<div id="%*.m,untyped">
|
|
<dt><pre><span class="Keyword">macro</span> <a href="#%25%2A.m%2Cuntyped"><span class="Identifier">`%*`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Convert an expression to a JsonNode directly, without having to specify <tt class="docutils literal"><span class="pre"><span class="Operator">%</span></span></tt> for every element.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L442" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L442" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="isRefSkipDistinct-macros-all">
|
|
<div id="isRefSkipDistinct.m,typed">
|
|
<dt><pre><span class="Keyword">macro</span> <a href="#isRefSkipDistinct.m%2Ctyped"><span class="Identifier">isRefSkipDistinct</span></a><span class="Other">(</span><span class="Identifier">arg</span><span class="Other">:</span> <a href="system.html#typed"><span class="Identifier">typed</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a></pre></dt>
|
|
<dd>
|
|
|
|
internal only, do not use
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L1074" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L1074" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="18">
|
|
<h1><a class="toc-backref" href="#18">Templates</a></h1>
|
|
<dl class="item">
|
|
<div id="%-templates-all">
|
|
<div id="%.t,JsonNode">
|
|
<dt><pre><span class="Keyword">template</span> <a href="#%25.t%2CJsonNode"><span class="Identifier">`%`</span></a><span class="Other">(</span><span class="Identifier">j</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a><span class="Other">)</span><span class="Other">:</span> <a href="json.html#JsonNode"><span class="Identifier">JsonNode</span></a></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/json.nim#L364" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/json.nim#L364" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="19">
|
|
<h1><a class="toc-backref" href="#19">Exports</a></h1>
|
|
<dl class="item">
|
|
<a href="tables.html#$,Table[A,B]"><span class="Identifier">$</span></a>, <a href="tables.html#$,TableRef[A,B]"><span class="Identifier">$</span></a>, <a href="tables.html#$,OrderedTable[A,B]"><span class="Identifier">$</span></a>, <a href="tables.html#$,OrderedTableRef[A,B]"><span class="Identifier">$</span></a>, <a href="tables.html#$,CountTable[A]"><span class="Identifier">$</span></a>, <a href="tables.html#$,CountTableRef[A]"><span class="Identifier">$</span></a>, <a href="parsejson.html#JsonEventKind"><span class="Identifier">JsonEventKind</span></a>, <a href="parsejson.html#JsonError"><span class="Identifier">JsonError</span></a>, <a href="parsejson.html#JsonParser"><span class="Identifier">JsonParser</span></a>, <a href="parsejson.html#JsonKindError"><span class="Identifier">JsonKindError</span></a>, <a href="lexbase.html#open,BaseLexer,Stream,int,set[char]"><span class="Identifier">open</span></a>, <a href="parsejson.html#open,JsonParser,Stream,string"><span class="Identifier">open</span></a>, <a href="syncio.html#open,File,string,FileMode,int"><span class="Identifier">open</span></a>, <a href="syncio.html#open,File,FileHandle,FileMode"><span class="Identifier">open</span></a>, <a href="syncio.html#open,string,FileMode,int"><span class="Identifier">open</span></a>, <a href="lexbase.html#close,BaseLexer"><span class="Identifier">close</span></a>, <a href="streams.html#close,Stream"><span class="Identifier">close</span></a>, <a href="parsejson.html#close,JsonParser"><span class="Identifier">close</span></a>, <a href="syncio.html#close,File"><span class="Identifier">close</span></a>, <a href="parsejson.html#str,JsonParser"><span class="Identifier">str</span></a>, <a href="parsejson.html#getInt,JsonParser"><span class="Identifier">getInt</span></a>, <a href="parsejson.html#getFloat,JsonParser"><span class="Identifier">getFloat</span></a>, <a href="macros.html#kind,NimNode"><span class="Identifier">kind</span></a>, <a href="parsejson.html#kind,JsonParser"><span class="Identifier">kind</span></a>, <a href="parsejson.html#getColumn,JsonParser"><span class="Identifier">getColumn</span></a>, <a href="parsejson.html#getLine,JsonParser"><span class="Identifier">getLine</span></a>, <a href="parsejson.html#getFilename,JsonParser"><span class="Identifier">getFilename</span></a>, <a href="parsejson.html#errorMsg,JsonParser"><span class="Identifier">errorMsg</span></a>, <a href="parsejson.html#errorMsgExpected,JsonParser,string"><span class="Identifier">errorMsgExpected</span></a>, <a href="parsejson.html#next,JsonParser"><span class="Identifier">next</span></a>, <a href="parsejson.html#JsonParsingError"><span class="Identifier">JsonParsingError</span></a>, <a href="parsejson.html#raiseParseErr,JsonParser,string"><span class="Identifier">raiseParseErr</span></a>, <a href="strutils.html#nimIdentNormalize,string"><span class="Identifier">nimIdentNormalize</span></a>
|
|
</dl>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="twelve-columns footer">
|
|
<span class="nim-sprite"></span>
|
|
<br>
|
|
<small style="color: var(--hint);">Made with Nim. Generated: 2025-12-28 15:54:53 UTC</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
|
|
|
|
</body>
|
|
</html>
|