here is my json:
[
{
"customer": "BigCo",
"performances": [
{
"playID": "hamlet",
"audience": 55
},
{
"playID": "as-like",
"audience": 35
},
{
"playID": "othello",
"audience": 40
}
]
}
]
here is my code(environment is node.js):
let readFile = require('fs').readFileSync
let invoices = JSON.parse(readFile('./invoices.json', 'utf8'))
console.log(invoices);
here is my result:
[
{ customer: 'BigCo', performances: [ [Object], [Object], [Object] ] }
]
I have read some questions related, and get some solutions like invoices = invoices[0]
or JSON.parse(JSON.stringify())
.
The thing I really hope to know is the reason.
Why do I get the result [ [Object], [Object], [Object] ]
and Which part cause the problem?
CodePudding user response:
I am no expert but the reason for this is that they are nested objects.
CodePudding user response:
You need to first convert the contents of the file into string and then parse it to JSON.
Use the following code :
let readFile = require('fs').readFileSync
let invoices = JSON.parse(readFile('./invoices.json', 'utf8').toString())
console.log(invoices[0]);
the output would be :
{
customer: 'BigCo',
performances: [
{ playID: 'hamlet', audience: 55 },
{ playID: 'as-like', audience: 35 },
{ playID: 'othello', audience: 40 }
]
}