Module:Json parameter test

From Visual Data Wiki
Jump to navigation Jump to search

Documentation for this module may be created at Module:Json parameter test/doc

local p = {}

function p.generateClassLists(frame)
    -- JSON-Daten in einem Lua-String
    -- local jsonData = frame.args.jsonData
    
    -- {{#visualdataquery:[[unique title::+]]
	--   |?articleid
	--   |schema = Data classes
	--   |format = json-raw
	-- }}

    -- local jsonData = frame:callParserFunction( '#visualdataquery:[[unique title::+]]', { '?articleid', schema = 'Data classes', format = 'json-raw' } )
    
    local jsonData = ' [{"pagetitle":"Classes/Gender","data":{"unique title":"Classes/Gender","title":"Gender","class names":["female","male","diverse"]}},{"pagetitle":"Classes/Age","data":{"unique title":"Classes/Age","title":"Age","class names":["0 - 14","15 - 29","30 - 44","45 - 59","60 +"]}},{"pagetitle":"Classes/Districts","data":{"unique title":"Classes/Districts","title":"Districts","class names":["District 1","District 2","District 3","District 4"]}},{"pagetitle":"Classes/Test classes","data":{"unique title":"Entry:Classes/Test classes","title":"Test classes","class names":["Class 1","Class 2"]}},{"pagetitle":"Classes/Test sub-classes","data":{"unique title":"Entry:Classes/Test sub-classes","title":"Test sub-classes","class names":["Sub-class 1","Sub-class 2"]}},{"pagetitle":"Classes/Test sub-sub classes 1","data":{"unique title":"Entry:Classes/Test sub-sub classes_1","title":"Test sub-sub classes","class names":["Sub-sub class 1","Sub-sub class 2"]}},{"pagetitle":"Classes/School districts","data":{"unique title":"Entry:Classes/School districts","title":"School districts","class names":["School district 1","School district 2","School district 3"]}},{"pagetitle":"Classes/Schools","data":{"unique title":"Entry:Classes/Schools","title":"Schools","class names":["School 1","School 2","School 3","School 4"]}},{"pagetitle":"Classes/School classes","data":{"unique title":"Entry:Classes/School classes","title":"School classes","class names":["Class 1","Class 2","Class 3","Class 4","Class 5","Class 6","Class 7","Class 8","Class 9","Class 10"]}}] '

    -- Debugging: Gib die empfangenen JSON-Daten aus
    -- return "Received JSON Data: " .. tostring(jsonData)
    
	-- JSON-Daten in Lua-Tabelle umwandeln
    local json = mw.text.jsonDecode(jsonData)

    local result = {}

    for _, item in ipairs(json) do
        local title = item.data.title
        local classNames = item.data["class names"]
        table.insert(result, "== " .. title .. " ==")
        table.insert(result, "* " .. table.concat(classNames, "\n* "))
    end

    return table.concat(result, "\n\n")
end

return p