0

我有一个 NodeJs 小程序,我想将用户数组(包含对象)保存到文件中,我正在这样做:

const fs = require('fs');
const util = require('util');
fs.writeFileSync('data/inventur_users.json', util.inspect(users), 'utf-8');

文件 inventur_Users.json 中的输出是:

[ BU4AFLx3cUYqdjvYPci7: { id: '5LkOWtVFcqz29UpsAAAC',
    name: 'p.langkau@scharr.de',
    rechte: 'vollzugriff',
    client_ID: 'BU4AFLx3cUYqdjvYPci7' } ]

现在我正在使用以下代码重新读取文件:

filedata = fs.readFileSync('data/inventur_users.json', 'utf-8');

我的问题是我只得到一个字符串,我不知道如何将字符串转换回包含对象的数组。

在此先感谢,帕特里克

4

2 回答 2

1

首先

[ BU4AFLx3cUYqdjvYPci7: { id: '5LkOWtVFcqz29UpsAAAC',
    name: 'p.langkau@scharr.de',
    rechte: 'vollzugriff',
    client_ID: 'BU4AFLx3cUYqdjvYPci7' } ]

不是有效的 json,您可以从这里验证它https://jsonlint.com/

有效的 json 看起来像

[{
    "BU4AFLx3cUYqdjvYPci7": {
        "id": "5LkOWtVFcqz29UpsAAAC",
        "name": "p.langkau@scharr.de",
        "rechte": "vollzugriff",
        "client_ID": "BU4AFLx3cUYqdjvYPci7"
    }
}]

然后您可以直接.json在变量中要求文件的内容,例如

const filedata = require('data/inventur_users.json');
于 2020-06-25T11:22:33.397 回答
0

您可以使用JSON.parse()将字符串转换回 JavaScript 对象:

filedata = JSON.parse(fs.readFileSync('data/inventur_users.json', 'utf-8'));

您还应该JSON.stringify()首先使用来保存文件:

fs.writeFileSync('data/inventur_users.json', JSON.stringify(util.inspect(users)), 'utf-8');
于 2020-06-25T11:25:46.853 回答