Corona SDK Lua, как записать в конкретную точку в файле JSON - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть файл JSON, в котором я использую два значения хранилища для настроек и тем.Мне удалось получить его, чтобы элементы в моем приложении использовали значения в файле JSON.

Однако я не пытаюсь записать в этот файл, чтобы при повторном запуске приложения оно использовало новые значения.

saveSettings.json

{ 
    "settings" : {
        "theme" : {
            "background" : {
                "R" : 255, 
                "G" : 255,
                "B" : 255
            },
            "text" : {
                "R" : 75, 
                "G" : 75,
                "B" : 75
            },
            "accent" : {
                "R" : 192, 
                "G" : 148,
                "B" : 204
            }
        },
        "assists" : {
            "highlightDigits" : true,
            "remainingDigits" : true 
        }
    }
}

settings.lua

local function RemainingSwitchPress( event )
    local switch = event.target
    print( "Switch with ID '"..switch.id.."' is on: "..tostring(switch.isOn) )
end

Я бы хотел, чтобы RemainingSwitchPress установилremainingDigits значение true / false в зависимости от его состояния.

Я пытался использовать следующий код, но не понимаю, как изменить это одно значение.

local JsonStorage = {}

-- Function to save a table.  Since game settings need to be saved from session to session, we will
-- use the Documents Directory
JsonStorage.saveTable = function(t, filename)
    local path = system.pathForFile( filename, system.DocumentsDirectory)
    local file = io.open(path, "w")

    if file then
        local contents = Json.encode(t)
        file:write( contents )
        io.close( file )
        return true
    else
        return false
    end
end

1 Ответ

0 голосов
/ 11 декабря 2018

Лично я бы просто сохранил всю таблицу настроек.Сохранить неизмененные значения не помешает.Если вам нужны эти значения в таблице помощников, просто передайте эту таблицу в json.encode () и запишите этот бит JSON.

...