json是js原生数据格式,可是用js操作起来惨不忍睹啊


额,很抱歉做了标题党...这样做只是为了更吸引人。

这样说无意贬低js,事实上我也对js兴趣有加,其中遇到一些问题希望得到大家指导。

以前用python处理起json数据得心应手,感觉很简单,我一般只用 json.load json.dump 就可以解决大多数问题,对于基础的且复杂的list或dict 都一般存为py模块,导入即可方便使用(这个方法可能不是太普遍,对于效率还请大家指点)。

现在用js处理,导入倒是挺简单, require file.json 文件后,直接对数组操作就可以生成新的数据,可是我要存为文件的时候就遇到问题了。我用 fs.writeFile('file', JSON.stringify(data)) 可以将json数据存为文件,可是结果并不太满意,第一可读性不好,再一点,取用数据的时候也没 require file.json 方便。

经验不足,菜鸟,说的可能很肤浅,还请大家多多指点。


最基本的问题就是我想通过nodejs将json存为文件

node.js json

eli2010 11 years, 9 months ago

首先你说的是 node.js ,虽然也是 JS ,但是和 JavaScript 还是有一些区别的。然后 JS 解析 JSON 的话一般都是用 JSON.stringify() JSON.parse() 函数的。
另外所谓的很好的支持,我觉得应该是讲对它的定义/格式有一个很好的支持,而不是片面的去比较书写代码的方式。
你的存入文件的写法没有问题的。
关于你的第一个问题,我想说你真是图样图森破,一定没有认真看过MDN的文档吧, JSON.stringfy() 是有其它参数的,具体请看: https://developer.mozilla.org/zh-CN/docs/JavaScript/Reference/Global_Objects/JSON/stringify


 JSON.stringify({ uno: 1, dos : 2 }, null, '\t')

关于你的第二个问题,我查了一下,读取的话这么写可能会比较方便(好看)一点:


 data = JSON.parse( require('file.json') );

Domdom answered 11 years, 9 months ago

Your Answer