首页 > 解决方案 > NeutralinoJS 存储

问题描述

这是用于编写 JSON 的 NeutralinoJS 存储 API。是否可以更新 JSON 文件(推送数据),而不仅仅是用新的 JS 对象覆盖数据。怎么做???

    // Javascript Object to be stored as JSON
let data = { 
    bucket : 'test', 
    content : { 
            item : 10 
    } 
}
// stores the data into JSON based data store.           
Neutralino.storage.putData(data,

// executes on successful storage of data
    function () {
    console.log('Data saved to storage/test.json');

    },
// executes if an error occurs

    function () {
    console.log('An error occured while saving the Data');

    }
);

标签: javascriptjsonapistorageneutralinojs

解决方案


Neutralino.storageapi 采用字符串而不是 JSON 来保存到本地存储中。

您可以非常轻松地将 JavaScript 对象创建为字符串,例如:

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

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

在这里您可以看到我们如何使用JSON.stringify方法将我们的 JavaScript 对象转换为字符串。

现在我们还可以将生成的字符串转换回我们的 javascript 对象,例如:

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

所以现在我们可以轻松地将我们的对象和数组存储到本地存储并轻松修改它们,例如:

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);
});

推荐阅读