json

DZONE

Известный
Автор темы
183
185
Нарушение правил раздела
Версия MoonLoader
.026-beta
не шарю в луа с json, хотелось бы узнать как сделать добавление чего либо в имгуи
типо


Код:
if imgui.Button("add") then
    -- создать imgui.text, записать в json
end

-- и тут добавленные юзером imgui.Text с json таблицы

как мне реализовать это?
 
  • Bug
Реакции: RoflHaHaWF

Vespan

loneliness
Проверенный
2,105
1,633
Хай,вот тут есть примеры как юзать json,думаю разберешься <3
 
  • Нравится
Реакции: DZONE

Neil_

Активный
198
29
Вот для примера
Lua:
local ev = require 'lib.samp.events'

function json(filePath)
    local filePath = getWorkingDirectory()..'\\config\\'..(filePath:find('(.+).json') and filePath or filePath..'.json')
    local class = {}
    if not doesDirectoryExist(getWorkingDirectory()..'\\config') then
        createDirectory(getWorkingDirectory()..'\\config')
    end
    
    function class:Save(tbl)
        if tbl then
            local F = io.open(filePath, 'w')
            F:write(encodeJson(tbl) or {})
            F:close()
            return true, 'ok'
        end
        return false, 'table = nil'
    end

    function class:Load(defaultTable)
        if not doesFileExist(filePath) then
            class:Save(defaultTable or {})
        end
        local F = io.open(filePath, 'r+')
        local TABLE = decodeJson(F:read() or {})
        F:close()
        for def_k, def_v in next, defaultTable do
            if TABLE[def_k] == nil then
                TABLE[def_k] = def_v
            end
        end
        return TABLE
    end

    return class
end

local test = json('test.json'):Load({})

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand('add', function(arg)
        table.insert(test, arg)
        json('test.json'):Save(test)
    end)
    wait(-1)
end
 
  • Нравится
Реакции: DZONE