Модуль:JSON: различия между версиями
Внешний вид
растяпа-пускуля... |
Spark108 (обсуждение | вклад) м 1 версия импортирована |
(нет различий)
|
Текущая версия от 10:58, 26 марта 2025
Для документации этого модуля может быть создана страница Модуль: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