gpt4 book ai didi

javascript - 解析 "... has no method ' 替换时出现 JSON 错误'”

转载 作者:搜寻专家 更新时间:2023-11-01 00:26:57 25 4
gpt4 key购买 nike

首先让我承认我是一个完整的编程和 javascript 菜鸟,这个事实是我麻烦的根源。

我正在尝试从我使用 json.stringify 保存到的文本文件中填充大量自定义对象。当我抓取文件内容和 json.parse(them) 时,出现以下错误:

var backSlashRemoved = text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@'
^
TypeError: Object (contents of file) has no method 'replace'

导致这个错误的代码是:

fs.readFile('/savedcustomobjectarray', function (err, data) {
var customobjectarray = json.parse(data);
});

我猜我的做法全错了。我看到有些人提到了这种事情的序列化器,但我想仔细检查一下这是否是我需要的(并且可能会得到一些关于如何在这种情况下使用它们的指导)。不过,似乎 stringify 输出没问题,所以我不确定为什么 JSON 不能将矮胖的垃圾重新组合在一起。任何帮助将不胜感激。

编辑:text.replace 行在/vendor/commonjs-utils/lib/json-ext.js 中,而不是我的代码。我认为这是 JSON 的一部分。也许我错了?是否有其他方法通过 JSON 解析我的对象数组?

最佳答案

fs.readFile 接受 2 或 3 个参数,当仅传递文件名和回调时,您的回调函数将获得以下两个参数 (err, data)其中 data 是原始 buffer .

所以正确的做法是:

fs.readFile('/savedcustomobjectarray', function (err, data) {
var customobjectarray = JSON.parse(data.toString('utf8'));
});

data.toString 将编码作为第一个参数。

另外,您可以将编码指定为 fs.readFile 的第二个参数,并将字符串传递给回调:

fs.readFile('/savedcustomobjectarray', 'utf8', function (err, data) {
var customobjectarray = JSON.parse(data);
});

Node API docs是你最好的 friend !

关于javascript - 解析 "... has no method ' 替换时出现 JSON 错误'”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5900713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com