Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JS read json file and use as an object

I'm trying so get the number of items in the array inside this piece

JSON

{
  "collection" : [
    {
      "item": "apple"
    },
    {
      "item": "banana"
    }]
}

Using the following JS (NodeJS): Updated with answers from user 'elssar'

var data = JSON.parse(fs.readFileSync(filePath));
console.log(data.collection.length);

Expected result: 2

Without specifying the encoding data will be a buffer instead of string (thanks to user nils). JSON.parse should work for both. Now I'm getting an error Unexpected token ? at Object.parse (native). Any idea how to fix this? (using Node 5.2.0)

like image 987
Matthijs van Hest Avatar asked Jan 14 '16 12:01

Matthijs van Hest


1 Answers

You need to parse the content of the file to JSON.

fs.readFile(filePath, function (error, content) {
    var data = JSON.parse(content);
    console.log(data.collection.length);
});

Or

var data = JSON.parse(fs.readFileSync(filePath));

Alternatively, you could just require json files (the file extension needs to be .json)

var data = require(filePath);
console.log(data.collection.length);
like image 110
elssar Avatar answered Oct 14 '22 00:10

elssar