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 12 years, 10 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 12 years, 10 months ago

Your Answer