【问题标题】:Writing and Reading JSON files in javascript在 javascript 中编写和读取 JSON 文件
【发布时间】:2017-03-23 00:58:27
【问题描述】:

所以我现在正在做一个项目,需要使用 JSON 存储用户偏好。我现在已经搜索了相当长的时间,但找不到解决方案。例如,sake 有三个变量 user、permissions、serverid 。我认为这会起作用。

tempObject = {
    user: []
};

tempObject.user.push({perm:permissions, server:serverid});

然后我将字符串化并变成 JSON。然而输出是这样的:

{user[{perm:4, server:883}]}

这是我在 indivisuals UserID 下对 perm 和 server 变量进行分组的绝望尝试,因此在代码的更下方我可以获取每个 userID 的权限。但正如您所见,它没有打印用户变量,只是将其更改为一个数组并将用户作为一个文字字符串。

tl;博士 简而言之,我需要帮助才能将 JSON 文件写入它在 UserID 下存储 perm 和 serverID 的位置。

【问题讨论】:

    标签: javascript json node.js file


    【解决方案1】:

    使用户成为对象。改变这个:

    user: []
    

    为此:

    user: {}
    

    然后像这样设置键:

    user.perm = 4;
    user.server = 883;
    

    【讨论】:

      【解决方案2】:

      出于安全原因,不允许客户端 JavaScript 写入磁盘。听起来您需要一个数据库。

      您可以利用 localStorage 或 cookie 作为数据库的替代品。

      我认为您应该将 users 数组更改为对象;这种方式可以通过用户 ID 键入。

      例如:

      var data = {
        users: {}
      };
      
      const userID = 1234; // or could be a string like 'john_doe'
      const userPermissions = { perm: 4, server: 883 };
      
      // set the user's permissions
      data.users[userID] = userPermissions;
      
      // fetching user's permissions
      const userData = data.users[userID];
      console.log('User ' + userID +' has perm = ' + userData.perm + ' and server = ' + userData.server);
      

      现在使用本地存储保存和加载这些数据很容易:

      function saveData() {
        localStorage.setItem('UserData', JSON.stringify(data));
      }
      
      function loadData() {
        data = JSON.parse(localStorage.getItem('UserData'));
      }
      

      【讨论】:

        猜你喜欢
        • 2012-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-13
        • 2018-02-11
        • 2021-04-22
        • 1970-01-01
        • 2018-10-11
        相关资源
        最近更新 更多