Solution 1:

The Neutralino.storage api takes string instead of JSON to save into local storage.

And you can create your JavaScript Objects to String Very easily, for example:

const myUser = {
  name: "John Doe",
  age: 19,
  married: false
}

const myUserString = JSON.stringify(myUser);
console.log(myUserString); // {"name":"John Doe","age":19,"married":false}

Here you can see how we used JSON.stringify method to convert our JavaScript Object into string.

Now We Can Also Convert generated string back to our javascript object, example:

const myUserString = '{"name":"John Doe","age":19,"married":false}';
const myUser = JSON.parse(myUserString);
console.log(myUser);

So now we can easily store our Objects and arrays to local storage and easily modify them, example:

async function saveToStorage(myUser) {
  let myUserString = JSON.stringify(myUser);
  await Neutralino.storage.setData('myUser', myUserString);
});

async function loadFromStorage() {
  let myUserString = await Neutralino.storage.getData('myUser');
  let myUser = JSON.parse('myUser');
  return myUser;
}

saveToStorage({
  name: "John Doe",
  age: 19,
  married: false
}).then(async () => {
  let myUser = await loadFromStorage();
  myUser.name = "Jane Doe"
  await saveToStorage(myUser);
});