简体   繁体   English

Corona SDK Lua,如何写入json文件中的特定点

[英]Corona SDK Lua, how to write to a specific point in a json file

I have a JSON file that I am using two store values for settings such and themes. 我有一个JSON文件,我正在使用两个存储值来设置此类和主题。 I have managed to get it so that elements in my application use the values in the JSON file. 我设法获得它,以便应用程序中的元素使用JSON文件中的值。

However, I am not trying to write to that file so that when the application is launched again it will use the new values. 但是,我并不是要写入该文件,以便在再次启动该应用程序时它将使用新值。

savedSettings.json savedSettings.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 settings.lua

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

I would like the RemainingSwitchPress to set the remainingDigits value to true/false depending on its state. 我希望RemainingSwitchPress根据其状态将剩余的remainingDigits值设置为true / false。

I have tried to use the following code but I don't see how I change that one value. 我尝试使用以下代码,但看不到如何更改该值。

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

Personally, I would just save the entire settings table. 就个人而言,我只保存整个设置表。 It doesn't hurt to save the unchanged values. 保存未更改的值没有什么害处。 If you need those values in the assists table, then just pass that table to json.encode() and then write out that bit of JSON. 如果您需要辅助表中的这些值,则只需将该表传递给json.encode(),然后写出该JSON位即可。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM