LuaJSON JSON Parser/Constructor for Lua Author: Thomas Harning Jr. <harningt@gmail.com> Source code: http://repo.or.cz/luajson Bug reports: http://github.com/harningt/luajson harningt@gmail.com Requirements Lua 5.1, 5.2, or LuaJIT 2.0 LPeg (Tested with 0.7, 0.8, 0.9, 0.10, 0.12rc2 ... 0.6 mostly works) For regressionTest: lfs (Tested with 1.4.1) For lunit-tests: lunit >= 0.4 NOTE: LPeg 0.11 may not work - it crashed during my tests Lua versions tested recently: Lua 5.1.4 + strict + pl.strict Lua 5.2.0 + pl.strict LuaJIT-2.0.0-beta10 + strict + pl.strict License All-but tests: MIT-style, See LICENSE for details tests/*: Public Domain / MIT - whichever is least restrictive Module/Function overview: json.encode (callable module referencing json.encode.encode) --encode ( value : ANY-valid ) Takes in a JSON-encodable value and returns the JSON-encoded text Valid input types: table array-like table (spec below) string number boolean 'null' - represented by json.util.null Table keys (string,number,boolean) are encoded as strings, others are erroneus Table values are any valid input-type Array-like tables are converted into JSON arrays... Position 1 maps to JSON Array position 0 --isEncodable ( value : ANY ) Returns a boolean stating whether is is encodeable or not NOTE: Tables/arrays are not deeply inspected json.decode (callable module referencing json.decode.decode) --decode (data : string, strict : optional boolean) Takes in a string of JSON data and converts it into a Lua object If 'strict' is set, then the strict JSON rule-set is used json.util --printValue (tab : ANY, name : string) recursively prints out all object values - if duplicates found, reference printed --null Reference value to represent 'null' in a well-defined way to allow for null values to be inserted into an array/table --merge (t : table, ... : tables) Shallow-merges a sequence of tables onto table t by iterating over each using pairs and assigning. Attribution: parsing test suite from JSON_checker project of http://www.json.org/ No listed license for these files in their package.