Модуль:JSON
Внешний вид
Для документации этого модуля может быть создана страница Модуль:JSON/doc
-- Модуль для работы с JSON-данными
local p = {}
-- Извлечение данных из JSON-страницы
function p.get(f)
local args = f
if f == mw.getCurrentFrame() then
args = require([[Модуль:ProcessArgs]]).merge(true)
end
local page = args["страница"] or ''
assert(page ~= '', "Необходима JSON-страница")
local data = mw.loadJsonData(page)
local curObject = data
for _, key in ipairs(args) do
curObject = curObject[key]
end
-- Если curObject является объектом (таблицей), то преобразуем её обратно
-- в JSON-формат
if type(curObject) == "table" then
return mw.text.jsonEncode(curObject)
else
return curObject
end
end
-- Преобразует полученные параметры в JSON-таблицу
function p.encode(f)
return mw.text.jsonEncode(f:getParent().args)
end
return p