node读写json文件(进阶)

Posted 土拉发子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node读写json文件(进阶)相关的知识,希望对你有一定的参考价值。

该方法可用于修改配置文件,直接上代码

fs.readFile(‘test1.json‘,‘utf8‘,function (err, data) {
        if(err) console.log(err);
        var test1=JSON.parse(data);
        test1.name="li";
        var t = JSON.stringify(test1);
        fs.writeFileSync(‘test1.json‘,t)
});

正常情况下从JSON文件读取到字符后再通过JSON.parse没什么问题,只要格式不出错。

有时在确保JSON格式正确时仍然会出现unexpected token异常

经过调查发现里面有不会显示的unicode字符

于是确定是UTF-8的问题,utf-8分有dom版和无dom版,一般编辑器不刻意设置会默认保存为带dom的utf8

解决办法是先将读到的文件转成二进制,然后检索dom符号删除

代码实现部分

function readText(pathname) {
    var bin = fs.readFileSync(pathname);
 
    if (bin[0] === 0xEF && bin[1] === 0xBB && bin[2] === 0xBF) {
        bin = bin.slice(3);
    }
 
    return bin.toString(‘utf-8‘);
}

 

以上是关于node读写json文件(进阶)的主要内容,如果未能解决你的问题,请参考以下文章

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

C语言进阶文件操作

我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段

我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段

如何使用 Node Js 中的文件系统重写文件中的 JSON 对象

使用 vs 代码扩展读写文件