当前位置: 首页 > 面试题库 >

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

楚翰
2023-03-14
问题内容

我看到如何将对象写入文件,如下所述:如何将对象保存到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中有一个JSON对象。我只想将JSON对象写入文本文件。到目前为止,从我遇到的情况来看,由于客户端的安全问题,无法这样做。有解决方法吗?如果最初放置一些虚拟值,是否可以修改已经存在的文件? 谢谢 问题答案: 您可以做的一件事就是将JSON设置为即时下载。 工作演示:http : //jsfiddle.net/sLq3F/ 除此之外,由于安全原因,您无法在客户端的

  • 问题内容: 我已经在stackoverflow / google上搜索了所有内容,但似乎无法弄清楚。 我正在抓取给定URL页面的社交媒体链接,并且该函数返回带有URL列表的对象。 当我尝试把这些数据写入到不同的文件,将其输出到文件,而不是预期:“ https://twitter.com/#!/101Cookbooks ”,’ http://www.facebook.com/ 101cookbook

  • 我正在编写一个python程序,可以循环reddit提交,提取数据,并将其作为对象存储在列表中。但是,我在将该列表写入csv文件时遇到困难。文件已创建,但它只是为对象提供某种id标记。我应该如何更改csv代码? 代码 CSV文件

  • 我以我对React JS的了解为基础,希望导入/包含一些只包含对象/对象数组的外部JS文件。我在jQuery、Vanilla JS甚至Angular JS中都做过。含糖的 我如何在React JS中实现同样的事情。 我有以下index.html: 还有我的主菜。js(条目文件)如下所示: 在这里,我有工作。js as: 为了更好地衡量,我的webpack.config.js看起来像这样: 感谢您的

  • 文件概述 文件是指存储在外部存储器上的数据集合。更准确的来说,文件就是一组相关元素或数据的有序集合,而且每个集合都有一个符号化的指代,称这个符号化的指代为文件名。 文件类型 根据文件在外部存储器上的组织形式,文件可以分为ASCII文件和二进制文件。 ASCII文件(文本文件):以字符的方式进行存储,一个字符对应一个ASCII码,而一个ASCII码占用1字节。例如:整数12在内存中占用4个字节;如果

  • 希望在节点JS中使用writefile将数据写入特定文件夹。 我在stackoverflow中看到过几个关于这个问题的问题,但没有一个对我有效。