Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 将json格式的json内容写入节点js中的新文件_Node.js_Json_Fs - Fatal编程技术网

Node.js 将json格式的json内容写入节点js中的新文件

Node.js 将json格式的json内容写入节点js中的新文件,node.js,json,fs,Node.js,Json,Fs,目标:使用NodeJS以json格式编写文件内容。手动打开文件后,内容应以json格式显示 我尝试了两个fs额外模块函数——outputJsonSync或writeFileSync,将json内容写入文件。他们将内容内联编写如下 {"a":"1", "b":"2"} 但是,当我手动打开文件时,我希望看到以下内容: { "a" : "1", "b" : "2" } 我尝试并使用以下数据: fs.outputJsonSync(jsome(data)) fs.outputJsonSync(pd.j

目标:使用NodeJS以json格式编写文件内容。手动打开文件后,内容应以json格式显示

我尝试了两个fs额外模块函数——outputJsonSync或writeFileSync,将json内容写入文件。他们将内容内联编写如下

{"a":"1", "b":"2"}
但是,当我手动打开文件时,我希望看到以下内容:

{
"a" : "1",
"b" : "2"
}
我尝试并使用以下数据:

fs.outputJsonSync(jsome(data))
fs.outputJsonSync(pd.json(data))
它们也只使用额外的\或\n和添加到数据中的制表符内联写入数据,但不以格式化样式打开

非常感谢您的任何意见。谢谢

[更新]

其他情况:

const obj = {"a":"1", "b":"2"}
var string = "abc" + "splitIt" + obj
doSomething(string)
在函数实现内部:

doSomething(string){
var arr =  string.split("splitIt")
var stringToWrite = JSON.stringify(arr[1], null, '  ').replace(/: "(?:[^"]+|\\")*"$/, ' $&')
fs.writeFileSync(filePath, stringToWrite)
}
打开文件时显示以下输出:

"[object Object]"

拥有对象后,可以指定替换函数以换行分隔每个键值对,然后使用正则表达式修剪前导空格,然后使用另一个正则表达式在键值对的:之前插入空格。然后,只需将格式化字符串写入文件:

常量obj={a:1,b:2}; const stringToWrite=JSON.stringifyobj,null,' //修剪前导空格: .替换/^+/gm, //在每个键之后,在“:”之前添加一个空格: .replace/:?:[^]+\124;\\*,?$/gm,“$&”;
console.logstringToWrite stringify有两个可选参数,第一个是替换函数,第二个是间距

const obj = {"a":"1", "b":"2"}
console.log(JSON.stringify(obj, null, 2))
这将为您提供:

{
  "a": "1",
  "b": "2"
}

当我尝试使用fs-fs.outputFileSyncfilePath、stringToWrite来编写stringToWrite时,在打开新文件时,我仍然可以看到数据内联有额外的斜杠,该文件使用writeFileSync创建的效果很好。stringToWrite中的所有新行仍然存在,并且没有斜杠。它看起来也可以与outputFileSync一起使用。我无法重现你的问题。请仔细检查一下谢谢!这在给定的示例中效果很好。我的实际情况是,我将对象obj附加到一个字符串,以将其传递给我的函数,该函数只接受一个参数。稍后在函数内部,我使用split来获取实际数据-obj。当我使用它时,我只在文件中看到[Object]。在新代码中编辑了要澄清的问题,arr[1]是一个字符串,而不是一个对象,因此JSON.stringifyarr[1]。。。没有任何意义-而且,作为一个字符串,纯字符串内容本身应该是结果,而不是对象。你确定你发布的代码就是你实际使用的代码吗?似乎不需要重复这个问题