Module:Json parameter test: Difference between revisions

From Visual Data Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 3: Line 3:
function p.generateClassLists(frame)
function p.generateClassLists(frame)
     -- JSON-Daten in einem Lua-String
     -- JSON-Daten in einem Lua-String
     local jsonData = frame:callParserFunction( '#visualdataquery:[[unique title::+]]', { '?articleid', schema = 'Data classes', format = 'json-raw' } )
     local jsonData = frame:callParserFunction('#visualdataquery:[[unique title::+]]', { '?articleid', schema = 'Data classes', format = 'json-raw' })
 
   
     -- Debug: Gib die empfangenen JSON-Daten aus
     -- Debug: Gib die empfangenen JSON-Daten aus
     mw.log("Received JSON Data: " .. tostring(jsonData))
     mw.log("Received JSON Data: " .. tostring(jsonData))
Line 12: Line 12:
         return "Keine JSON-Daten empfangen."
         return "Keine JSON-Daten empfangen."
     end
     end
    -- Entferne führende und nachfolgende Leerzeichen
    jsonData = mw.text.trim(jsonData)
    -- Debug: Gib die getrimmten JSON-Daten aus
    mw.log("Trimmed JSON Data: " .. tostring(jsonData))


     -- JSON-Daten in Lua-Tabelle umwandeln
     -- JSON-Daten in Lua-Tabelle umwandeln

Revision as of 07:40, 27 May 2024

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:callParserFunction('#visualdataquery:[[unique title::+]]', { '?articleid', schema = 'Data classes', format = 'json-raw' })
    
    -- Debug: Gib die empfangenen JSON-Daten aus
    mw.log("Received JSON Data: " .. tostring(jsonData))

    -- Überprüfe, ob jsonData gültig ist
    if not jsonData or jsonData == '' then
        return "Keine JSON-Daten empfangen."
    end

    -- Entferne führende und nachfolgende Leerzeichen
    jsonData = mw.text.trim(jsonData)

    -- Debug: Gib die getrimmten JSON-Daten aus
    mw.log("Trimmed JSON Data: " .. tostring(jsonData))

    -- JSON-Daten in Lua-Tabelle umwandeln
    local success, json = pcall(mw.text.jsonDecode, jsonData)
    if not success then
        return "Fehler beim Dekodieren der JSON-Daten: " .. tostring(json)
    end

    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