使用nsJSON创建多个json文件

时间:2017-09-26 16:45:09

标签: json nsis nsjsonserialization

我在NSIS安装程序中使用nsJSON插件来创建多个json文件。如何清除文件之间的数组,以便在创建其他json时,它没有前一个文件中的值。

这是一个简化的例子:

nsJSON::Set /value '[]'
nsJSON::Set /value '{ "Input": [ { "test1": false, } ]'
nsJSON::Set /value '{ "Input": [ { "test2": false, } ]'
nsJSON::Serialize /format /file "C:\false.json"

nsJSON::Set /value '[]'
nsJSON::Set /value '{ "Input": [ { "test1": true, } ]'
nsJSON::Set /value '{ "Input": [ { "test2": true, } ]'
nsJSON::Serialize /format /file "C:\true.json"

在上面的例子中,true.json文件将具有我所期望的所有设置值,但是我正在寻找在数据写入文件后如何清除数组。

1 个答案:

答案 0 :(得分:0)

您的JSON示例格式错误,您遗漏了},但这并不能解释问题。

似乎nsJSON不喜欢根数组。

nsJSON::Set /value '{ "Input": [ { "test1": false, } ] }'
nsJSON::Set /value '{}' # <-- Works, it is now just a empty object

还有一个删除命令:

nsJSON::Set /value '{ "Input": [ { "test1": false, } ] }'
nsJSON::Delete "Input" /end

如果你绝对需要将root作为一个数组,我认为你需要使用/ tree参数解决这些错误并简单地使用多个JSON树。

如果我找到更好的删除整个树的方法,我会问插件作者并更新这个答案...

编辑:

现在已经发布了新版本的nsJSON(v1.1.1.0),它可以解决这些问题。试试nsJSON::Delete /end