luajson v1.2 Release Notes ========================== Tested LPeg versions: * 0.9 - pass * 0.8 - pass * 0.7 - pass * 0.6 - fail : cannot handle 'nil' returns -> tranforms into booleans Note that 0.6 passes strict mode tests and behaviors. It just breaks down when decoding the plain return value `null` or `undefined` that would result in a `nil` return value. User Visible Changes -------------------- setObjectKey ~~~~~~~~~~~~ Thanks to Alexander Gladysh, we now have the "setObjectKey" hook to permit more customizable behavior during object construction. There is a new 'object' option that you can set to handle custom key-value setting. If you set in the configuration table .object.setObjectKey to a function with the signature `(tab, key, value)`, you will override the `rawset` style behavior. Example: json.decode("{'1':true, x:true}") --> { ["1"] = true, x = true } function newSetObjectKey(tab, key, value) local numkey = tonumber(key) key = numkey or key rawset(tab, key, value) end json.decode("{'1':true, x:true}", { object = { setObjectKey = newSetObjectKey } }) --> { [1] = true, x = true } require builtins update ~~~~~~~~~~~~~~~~~~~~~~~ Also changed is the major change to `require` as many of the default packages as possible to better help custom embedding scenarios where 'default' tables such as `io` and `os` may require on-demand loading via `require`. Plans for next release ---------------------- For the next feature release, I plan on better fleshing out the enhanced error handling and possibly adding in the more customizable output system. For previews of the features that might make it into the next release, please see the "next" branch. Note that this branch is volatile and features may vanish rather than be reverted for cleanliness. Updates since 1.1.1 =================== Thomas Harning Jr (4): all: pulls in all but base/package modules via require (io,os,string,table,math) decoder: implements setObjectKey for LPeg < 0.9 Moves 'setObjectKey' from root of `options` to `options.object` docs: adds reference for where bug reporting should go Alexander Gladysh (1): decoder: configurable object key filter