[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
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
$Id: json.lua 3996 2009-01-04 20:08:45Z Cyrus $
|
$Id$
|
||||||
|
|
||||||
Decoder:
|
Decoder:
|
||||||
Info:
|
Info:
|
||||||
|
@ -52,6 +52,7 @@ local type = type
|
||||||
local pairs = pairs
|
local pairs = pairs
|
||||||
local ipairs = ipairs
|
local ipairs = ipairs
|
||||||
local next = next
|
local next = next
|
||||||
|
local pcall = pcall
|
||||||
|
|
||||||
local getmetatable = getmetatable
|
local getmetatable = getmetatable
|
||||||
|
|
||||||
|
@ -59,6 +60,33 @@ local getmetatable = getmetatable
|
||||||
-- @cstyle instance
|
-- @cstyle instance
|
||||||
module "luci.json"
|
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
|
--- Null replacement function
|
||||||
-- @return null
|
-- @return null
|
||||||
function null()
|
function null()
|
||||||
|
|
Loading…
Reference in New Issue