1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
5 <title>Reference</title>
6 <link rel="stylesheet" href="../luadoc.css" type="text/css" />
7 <!--meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/-->
14 <div id="product_logo"></div>
15 <div id="product_name"><big><b></b></big></div>
16 <div id="product_description"></div>
17 </div> <!-- id="product" -->
27 <li><a href="../index.html">Index</a></li>
38 <a href="../modules/luci.dispatcher.html">luci.dispatcher</a>
42 <a href="../modules/luci.http.html">luci.http</a>
46 <a href="../modules/luci.http.conditionals.html">luci.http.conditionals</a>
50 <a href="../modules/luci.http.date.html">luci.http.date</a>
54 <a href="../modules/luci.http.mime.html">luci.http.mime</a>
58 <a href="../modules/luci.i18n.html">luci.i18n</a>
62 <a href="../modules/luci.ip.html">luci.ip</a>
66 <a href="../modules/luci.ip.cidr.html">luci.ip.cidr</a>
70 <a href="../modules/luci.json.html">luci.json</a>
73 <li><strong>luci.jsonc</strong></li>
76 <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
80 <a href="../modules/luci.model.ipkg.html">luci.model.ipkg</a>
84 <a href="../modules/luci.model.uci.html">luci.model.uci</a>
88 <a href="../modules/luci.rpcc.html">luci.rpcc</a>
92 <a href="../modules/luci.rpcc.ruci.html">luci.rpcc.ruci</a>
96 <a href="../modules/luci.sys.html">luci.sys</a>
100 <a href="../modules/luci.sys.init.html">luci.sys.init</a>
104 <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
108 <a href="../modules/luci.sys.net.html">luci.sys.net</a>
112 <a href="../modules/luci.sys.process.html">luci.sys.process</a>
116 <a href="../modules/luci.sys.user.html">luci.sys.user</a>
120 <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
124 <a href="../modules/luci.util.html">luci.util</a>
128 <a href="../modules/nixio.html">nixio</a>
132 <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
136 <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
140 <a href="../modules/nixio.File.html">nixio.File</a>
144 <a href="../modules/nixio.README.html">nixio.README</a>
148 <a href="../modules/nixio.Socket.html">nixio.Socket</a>
152 <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
156 <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
160 <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
164 <a href="../modules/nixio.bin.html">nixio.bin</a>
168 <a href="../modules/nixio.bit.html">nixio.bit</a>
172 <a href="../modules/nixio.crypto.html">nixio.crypto</a>
176 <a href="../modules/nixio.fs.html">nixio.fs</a>
191 </div><!-- id="navigation" -->
195 <h1>Class <code>luci.jsonc</code></h1>
198 LuCI JSON parsing and serialization library.
199 The luci.jsonc class is a high level Lua binding to the JSON-C library to
200 allow reading and writing JSON data with minimal overhead.</p>
209 <table class="function_list">
212 <td class="name" nowrap><a href="#new">new</a> ()</td>
215 Construct a new luci.jsonc.parser instance.</td>
219 <td class="name" nowrap><a href="#parse">parse</a> (json)</td>
222 Parse a complete JSON string and convert it into a Lua data structure.</td>
226 <td class="name" nowrap><a href="#stringify">stringify</a> (data, pretty)</td>
229 Convert given Lua data into a JSON string.</td>
243 <h2><a name="functions"></a>Functions</h2>
244 <dl class="function">
248 <dt><a name="new"></a><strong>new</strong> ()</dt>
252 Construct a new luci.jsonc.parser instance.
259 <code>parser = luci.jsonc.new()</code>
263 <h3>Return value:</h3>
264 A <code>luci.jsonc.parser</code> object representing a JSON-C tokener.
273 <dt><a name="parse"></a><strong>parse</strong> (json)</dt>
277 Parse a complete JSON string and convert it into a Lua data structure.
284 json: A string containing the JSON data to parse, must be either a
285 JSON array or a JSON object.
294 <pre>data = luci.jsonc.parse('{ "name": "John", "age": 34 }')
295 print(data.name) -- "John"</pre>
299 <h3>Return value:</h3>
300 On success, a table containing the parsed JSON data is returned, on
301 failure the function returns <code>nil</code> and a string containing the reason of
309 <li><a href="#stringify">
320 <dt><a name="stringify"></a><strong>stringify</strong> (data, pretty)</dt>
324 Convert given Lua data into a JSON string.
326 This function recursively converts the given Lua data into a JSON string,
327 ignoring any unsupported data. Lua tables are converted into JSON arrays if they
328 only contain integer keys, mixed tables are turned into JSON objects with any
329 existing numeric keys converted into strings.
331 Lua functions, coroutines and userdata objects are ignored and Lua numbers are
332 converted to integers if they do not contain fractional values.
340 data: The Lua data to convert, can be a table, string, boolean or number.
344 pretty: A boolean value indicating whether the resulting JSON should be
354 <pre>json = luci.jsonc.stringify({ item = true, values = { 1, 2, 3 } })
355 print(json) -- '{"item":true,"values":[1,2,3]}'</pre>
359 <h3>Return value:</h3>
360 Returns a string containing the JSON representation of the given Lua
368 <li><a href="#parse">
383 </div> <!-- id="content" -->
385 </div> <!-- id="main" -->
388 <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
389 </div> <!-- id="about" -->
391 </div> <!-- id="container" -->