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.protocol.html">luci.http.protocol</a>
46 <a href="../modules/luci.http.protocol.conditionals.html">luci.http.protocol.conditionals</a>
50 <a href="../modules/luci.http.protocol.date.html">luci.http.protocol.date</a>
54 <a href="../modules/luci.http.protocol.mime.html">luci.http.protocol.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>
69 <li><strong>luci.jsonc</strong></li>
72 <a href="../modules/luci.jsonc.parser.html">luci.jsonc.parser</a>
76 <a href="../modules/luci.sys.init.html">luci.sys.init</a>
80 <a href="../modules/luci.sys.iptparser.html">luci.sys.iptparser</a>
84 <a href="../modules/luci.sys.net.html">luci.sys.net</a>
88 <a href="../modules/luci.sys.process.html">luci.sys.process</a>
92 <a href="../modules/luci.sys.user.html">luci.sys.user</a>
96 <a href="../modules/luci.sys.wifi.html">luci.sys.wifi</a>
100 <a href="../modules/nixio.html">nixio</a>
104 <a href="../modules/nixio.CHANGELOG.html">nixio.CHANGELOG</a>
108 <a href="../modules/nixio.CryptoHash.html">nixio.CryptoHash</a>
112 <a href="../modules/nixio.File.html">nixio.File</a>
116 <a href="../modules/nixio.README.html">nixio.README</a>
120 <a href="../modules/nixio.Socket.html">nixio.Socket</a>
124 <a href="../modules/nixio.TLSContext.html">nixio.TLSContext</a>
128 <a href="../modules/nixio.TLSSocket.html">nixio.TLSSocket</a>
132 <a href="../modules/nixio.UnifiedIO.html">nixio.UnifiedIO</a>
136 <a href="../modules/nixio.bin.html">nixio.bin</a>
140 <a href="../modules/nixio.bit.html">nixio.bit</a>
144 <a href="../modules/nixio.crypto.html">nixio.crypto</a>
148 <a href="../modules/nixio.fs.html">nixio.fs</a>
163 </div><!-- id="navigation" -->
167 <h1>Class <code>luci.jsonc</code></h1>
170 LuCI JSON parsing and serialization library.
171 The luci.jsonc class is a high level Lua binding to the JSON-C library to
172 allow reading and writing JSON data with minimal overhead.</p>
181 <table class="function_list">
184 <td class="name" nowrap><a href="#new">new</a> ()</td>
187 Construct a new luci.jsonc.parser instance.</td>
191 <td class="name" nowrap><a href="#parse">parse</a> (json)</td>
194 Parse a complete JSON string and convert it into a Lua data structure.</td>
198 <td class="name" nowrap><a href="#stringify">stringify</a> (data, pretty)</td>
201 Convert given Lua data into a JSON string.</td>
215 <h2><a name="functions"></a>Functions</h2>
216 <dl class="function">
220 <dt><a name="new"></a><strong>new</strong> ()</dt>
224 Construct a new luci.jsonc.parser instance.
231 <code>parser = luci.jsonc.new()</code>
235 <h3>Return value:</h3>
236 A <code>luci.jsonc.parser</code> object representing a JSON-C tokener.
245 <dt><a name="parse"></a><strong>parse</strong> (json)</dt>
249 Parse a complete JSON string and convert it into a Lua data structure.
256 json: A string containing the JSON data to parse, must be either a
257 JSON array or a JSON object.
266 <pre>data = luci.jsonc.parse('{ "name": "John", "age": 34 }')
267 print(data.name) -- "John"</pre>
271 <h3>Return value:</h3>
272 On success, a table containing the parsed JSON data is returned, on
273 failure the function returns <code>nil</code> and a string containing the reason of
281 <li><a href="#stringify">
292 <dt><a name="stringify"></a><strong>stringify</strong> (data, pretty)</dt>
296 Convert given Lua data into a JSON string.
298 This function recursively converts the given Lua data into a JSON string,
299 ignoring any unsupported data. Lua tables are converted into JSON arrays if they
300 only contain integer keys, mixed tables are turned into JSON objects with any
301 existing numeric keys converted into strings.
303 Lua functions, coroutines and userdata objects are ignored and Lua numbers are
304 converted to integers if they do not contain fractional values.
312 data: The Lua data to convert, can be a table, string, boolean or number.
316 pretty: A boolean value indicating whether the resulting JSON should be
326 <pre>json = luci.jsonc.stringify({ item = true, values = { 1, 2, 3 } })
327 print(json) -- '{"item":true,"values":[1,2,3]}'</pre>
331 <h3>Return value:</h3>
332 Returns a string containing the JSON representation of the given Lua
340 <li><a href="#parse">
355 </div> <!-- id="content" -->
357 </div> <!-- id="main" -->
360 <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>
361 </div> <!-- id="about" -->
363 </div> <!-- id="container" -->