代码之家  ›  专栏  ›  技术社区  ›  Mark

在JSON上读取的级别不能超过1

  •  0
  • Mark  · 技术社区  · 6 年前

    { 'Blue Aces Bakery':
    { Symbol: 'BAB',
     Stock:
      { onSale: {},
        Shares: 13,
        Price: 10,
        marketCap: 130,
        Balance: 10075,
        stockOpen: 10,
        previousClose: 10,
        chartFile: './public/BAB',
        Intraday: [Array],
        previousIntraday: [Array] 
        } 
        } 
    }
    

    但是当我运行这个代码时

    var stockData = require('./stocks.json');
    console.log(stockData[Companies])
    if(stockData[Companies].Stock.onSale.Bids) {...
    

    { 'Blue Aces Bakery':
    { Symbol: 'BAB',
     Stock:
      { onSale: {},
        Shares: 13,
        Price: 10,
        marketCap: 130,
        Balance: 10075,
        stockOpen: 10,
        previousClose: 10,
        chartFile: './public/BAB',
        Intraday: [Array],
        previousIntraday: [Array] } } }
    
      (node:14680) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'onSale' of undefined
    at checkStocks (C:\Users\Mark\Desktop\Stock Bot\base.js:30:39)
    

    这对我来说毫无意义。有人能帮我解决我的问题吗?我已经试过查了,没有人有同样的问题。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Somrlik    6 年前

    console.log() 只显示几个层次的深层对象。

    你会想用 console.dir() (取决于版本等)或 util.inspect() .

    演示:

    $ node 
    > let a = {}; a.b = {}; a.b.c = {}; a.b.c.d = {}; a.b.c.d.e = [0,1,2,3,4];
    [ 0, 1, 2, 3, 4 ]
    > console.log(a)
    { b: { c: { d: [Object] } } }
    undefined
    > console.dir(a)
    { b: { c: { d: [Object] } } }
    undefined
    > console.log(util.inspect(a, false, null, true))
    { b: { c: { d: { e: [ 0, 1, 2, 3, 4 ] } } } }
    undefined
    > process.version
    'v10.14.1'
    >