Javascript 解析“JSON”时出现JSON错误;。。。没有方法';更换'&引用;

Javascript 解析“JSON”时出现JSON错误;。。。没有方法';更换'&引用;,javascript,json,node.js,javascript-objects,fs,Javascript,Json,Node.js,Javascript Objects,Fs,让我先承认我是一个完整的编程和javascript noob,这是我麻烦的根源 我正试图从我用json.stringify保存到的文本文件中填充大量自定义对象。当我获取文件内容和json.parse(它们)时,我得到以下错误: var backSlashRemoved = text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@' ^ TypeError: Object (contents

让我先承认我是一个完整的编程和javascript noob,这是我麻烦的根源

我正试图从我用json.stringify保存到的文本文件中填充大量自定义对象。当我获取文件内容和json.parse(它们)时,我得到以下错误:

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不能将humpty dumpty重新组合起来。任何帮助都将不胜感激

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

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

因此,正确的方法是:

fs.readFile('/savedcustomobjectarray', function (err, data) {
  var customobjectarray = JSON.parse(data.toString('utf8'));
});
data.toString
将编码作为第一个参数

Alternitavley您可以将编码指定为
fs.readFile
的第二个参数,并让它向回调传递一个字符串:

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

NodeAPI是您最好的朋友

只能对字符串调用
.replace
。检查文本是字符串还是其他对象你到底想用正则表达式做什么?@JohnP我不知道如何应用你所说的。文件中的文本是字符串化的JSON文件,而text.replace不在我的代码中,而是由JSON.parse(数据)代码产生的。@Drackir很抱歉,我的noobishness又出现了。确切地说,我的正则表达式是哪一部分?@clixby replace中的那一部分,请您编辑您的问题,向我们展示一个数据样本,并解释整个过程