Home > Mobile >  Why the JSON.parse returning [Object Object] instead of value?
Why the JSON.parse returning [Object Object] instead of value?

Time:03-07

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 }
  ]
}
  • Related