【发布时间】:2011-08-19 12:47:24
【问题描述】:
让我承认我是一个完整的编程和 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 解析我的对象数组?
【问题讨论】:
-
.replace只能在字符串上调用。检查文本是字符串还是其他对象 -
你到底想用你的正则表达式做什么?
-
@JohnP 我不确定如何应用你所说的。文件中的文本是字符串化的 JSON 文件,而 text.replace 不在我的代码中,而是来自 json.parse(data) 代码。
-
@Drackir 对不起,我的笨拙又来了。我的正则表达式到底是哪一部分?
-
@clixby 替换里面的部分,请您编辑您的问题,向我们展示数据样本并解释整个过程
标签: javascript json node.js javascript-objects fs