Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

226
Views
unable to create array from multiple files data

I've 2 files as below.

f1.json

{
"name":"user1"
}

f2.json

{
"name":"user2"
}

and here is my code snippet.

var fs = require("fs");

function readIt() {
  let combined = [];
  fs.readdir("jsonfiles", function (err, files) {
    files.forEach(function (file, index) {
      combined.push(fileread("jsonfiles/" + file));
    });

    fs.writeFile("test.json", combined.toString(), (err) => {
      if (err) console.log(err);
      console.log("Successfully Written to File.");
    });
  });
}

function fileread(filename) {
  var contents = fs.readFileSync(filename);
  return contents;
}

readIt();

when I run this, the resulting output is as below

{
  "name":"user1"
},
{
  "name":"user2"
}

but I want it to be

[
{
  "name":"user1"
},
{
  "name":"user2"
}
]

Please let me know where I'm going wrong.

Thanks

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Instead of toString(), you should use JSON.stringify().

To see their different behavior, you can try this snippet:

var jsonArr = [{name: "Mia"}, {name: "Eddie"}];

// toString()
console.log(jsonArr.toString());

// JSON.stringify()
console.log(JSON.stringify(jsonArr));

JavaScript Array.prototype.toString() just prints out the elements of the array, excluding the array bracket, but JSON.stringify() prints whole Javascript object structure as a valid JSON.

As the fs.writeFile() in Node.JS needs/consumes buffer, so you need to store the JSON string result in a variable before using it.

let jsonArr = [{name: "Mia"}];
const jsonString = JSON.stringify(jsonArr);
fs.writeFile("data.json", jsonString, (err) => ...);
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!