Json

the same

Активный
Автор темы
181
24
Версия MoonLoader
.027.0-preview
Как перебирать массив c json файла?

к примеру


Пример json файла:
{
    "test" : ["слово1","слово2"]
}
 
  • Эм
Реакции: qdIbp
Решение
не , смотри json файл у меня к примеру на гитхабе ,и я хочу получать данные из массива затем перебирая их ( к примеру , пусть там будут запрещённые слова )
Lua:
local dlstatus = require('moonloader').download_status
local list, loaded = {}, false

function init()
    downloadUrlToFile('ССЫЛКА', getWorkingDirectory()..'\\temp_data.json', function(id, status, p1, p2)
        if status == dlstatus.STATUSEX_ENDDOWNLOAD then
            local F = io.open(getWorkingDirectory()..'\\temp_data.json', 'r')
            if F then  
                local json = F:read('*a')
                F:close()
                list = decodeJson(json)
                assert(type(list) == 'table', 'decoded json is not a table')
                loaded = true...

7 СМЕРТНЫХ ГРЕХОВ

пісюнковий злочинець
527
165
 

the same

Активный
Автор темы
181
24
Lua:
local tbl = decodeJson('{"test" : ["слово1","слово2"]}')

for _, word in ipairs(tbl.test) do
    print(word)
end
не , смотри json файл у меня к примеру на гитхабе ,и я хочу получать данные из массива затем перебирая их ( к примеру , пусть там будут запрещённые слова )
 

chapo

tg/inst: @moujeek
Всефорумный модератор
9,120
12,218
не , смотри json файл у меня к примеру на гитхабе ,и я хочу получать данные из массива затем перебирая их ( к примеру , пусть там будут запрещённые слова )
Lua:
local dlstatus = require('moonloader').download_status
local list, loaded = {}, false

function init()
    downloadUrlToFile('ССЫЛКА', getWorkingDirectory()..'\\temp_data.json', function(id, status, p1, p2)
        if status == dlstatus.STATUSEX_ENDDOWNLOAD then
            local F = io.open(getWorkingDirectory()..'\\temp_data.json', 'r')
            if F then  
                local json = F:read('*a')
                F:close()
                list = decodeJson(json)
                assert(type(list) == 'table', 'decoded json is not a table')
                loaded = true
            else
                sampAddChatMessage('ошибка, невозможно открыть файл', -1)
            end
            os.remove(getWorkingDirectory()..'\\temp_data.json')
        end
    end)
end


function main()
    while not isSampAvailable() do wait(0) end
    init()
    sampRegisterChatCommand('test', function()
        if not loaded then
            return sampAddChatMessage('Список не был загружен, подожди', -1)
        end
        -- твой код
    end)
    wait(-1)
end
 
  • Нравится
Реакции: the same