2017-09-26 5 views
0

J'utilise le plugin nsJSON dans un installeur NSIS pour créer plusieurs fichiers json. Comment effacer le tableau entre les fichiers de sorte que lors de la création d'un fichier json supplémentaire, il n'a pas les valeurs du fichier précédent.Création de plusieurs fichiers json avec nsJSON

Ceci est un exemple simplifié:

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" 

Dans l'exemple ci-dessus, le fichier true.json aura toutes les valeurs de consigne qui sont ce que j'attendais obtenu le code, mais je cherche comment clair le tableau une fois que les données sont écrites dans le fichier.

Répondre

0

Votre exemple JSON est mal formé, il vous manque un } mais cela n'explique pas le problème.

Il semble que nsJSON n'aime pas les tableaux racines.

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

Il y a aussi une commande Supprimer:

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

Si vous avez besoin absolument la racine d'être un tableau, je pense que vous devez contourner les bugs en utilisant le paramètre/arbre et il suffit d'utiliser plusieurs Arbres JSON.

Je vais demander à l'auteur de plug-in et mettre à jour cette réponse si je trouve une meilleure façon de supprimer l'arbre entier ...

Edit:

Une nouvelle version de nsJSON a été libéré (v1.1.1.0) et il répare soi-disant ces problèmes. Essayez nsJSON::Delete /end

+0

Merci, c'était la direction que j'ai commencé à entrer déjà, l'application utilise le JSON comme une configuration et nécessite que les paramètres soient à la racine. – afriesenborg

+0

Je suis entré en contact avec l'auteur et il pense que c'est un bug aussi. Je vais mettre à jour quand j'en saurai plus. – Anders