gpt4 book ai didi

javascript - 将js对象写入nodejs中的文件(包括方法)?

转载 作者:数据小太阳 更新时间:2023-10-29 04:40:58 25 4
gpt4 key购买 nike

我看到了如何将对象写入文件,如下所述:How can I save objects to files in Node.js?但是有没有一种方法可以获取一个对象并以一种允许我将对象重新加载到内存中的方式编写它,包括它的方法?

最佳答案

正如@AnthonySottile 之前所说,这可能非常危险,我不确定它是否有好的用例,但只是为了好玩和咯咯笑,你需要编写自己的递归序列化程序。像这样:

var toString = Object.prototype.toString;

function dump_object(obj) {
var buff, prop;
buff = [];
for (prop in obj) {
buff.push(dump_to_string(prop) + ': ' + dump_to_string(obj[prop]))
}
return '{' + buff.join(', ') + '}';
}

function dump_array(arr) {
var buff, i, len;
buff = [];
for (i=0, len=arr.length; i<len; i++) {
buff.push(dump_to_string(arr[i]));
}
return '[' + buff.join(', ') + ']';
}

function dump_to_string(obj) {
if (toString.call(obj) == '[object Function]') {
return obj.toString();
} else if (toString.call(obj) == '[object Array]') {
return dump_array(obj);
} else if (toString.call(obj) == '[object String]') {
return '"' + obj.replace('"', '\\"') + '"';
} else if (obj === Object(obj)) {
return dump_object(obj);
}
return obj.toString();
}

这将处理大多数类型,但总是有可能被古怪的人搞砸,所以我不会在生产中使用它。之后反序列化就像:

eval('var test = ' + dump_to_string(obj))

关于javascript - 将js对象写入nodejs中的文件(包括方法)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11275732/

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