[luci] backport json decode/encode string functions from 0.10
This commit is contained in:
parent
23b47bd955
commit
069a8540b0
|
@ -10,7 +10,7 @@ You may obtain a copy of the License at
|
|||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
$Id: json.lua 3996 2009-01-04 20:08:45Z Cyrus $
|
||||
$Id$
|
||||
|
||||
Decoder:
|
||||
Info:
|
||||
|
@ -52,6 +52,7 @@ local type = type
|
|||
local pairs = pairs
|
||||
local ipairs = ipairs
|
||||
local next = next
|
||||
local pcall = pcall
|
||||
|
||||
local getmetatable = getmetatable
|
||||
|
||||
|
@ -59,6 +60,33 @@ local getmetatable = getmetatable
|
|||
-- @cstyle instance
|
||||
module "luci.json"
|
||||
|
||||
|
||||
--- Directly decode a JSON string
|
||||
-- @param json JSON-String
|
||||
-- @return Lua object
|
||||
function decode(json, ...)
|
||||
local a = ActiveDecoder(function() return nil end, ...)
|
||||
a.chunk = json
|
||||
local s, obj = pcall(a.get, a)
|
||||
return s and obj or nil
|
||||
end
|
||||
|
||||
|
||||
--- Direcly encode a Lua object into a JSON string.
|
||||
-- @param obj Lua Object
|
||||
-- @return JSON string
|
||||
function encode(obj, ...)
|
||||
local out = {}
|
||||
local e = Encoder(obj, 1, ...):source()
|
||||
local chnk, err
|
||||
repeat
|
||||
chnk, err = e()
|
||||
out[#out+1] = chnk
|
||||
until chnk
|
||||
return not err and table.concat(out) or nil
|
||||
end
|
||||
|
||||
|
||||
--- Null replacement function
|
||||
-- @return null
|
||||
function null()
|
||||
|
|
Loading…
Reference in New Issue