1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486 |
- <?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>
- </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>
- </div>
- <div class="twelve-columns footer">
- <span class="nim-sprite"></span>
- <br>
- <small style="color: var(--hint);">Made with Nim. Generated: 2025-03-15 14:13:23 UTC</small>
- </div>
- </div>
- </div>
- <script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
-
- </body>
- </html>
|