处理JSON时返回空数组

时间:2017-11-08 05:51:16

标签: javascript json node.js

我正在从json文件获取数据,并希望将数据推送到数组。我的目的是在之后将数据保存到数据库中。

但是,在处理JSON时我才会回来:

admin:~/workspace/src (master) $ node exampleJSON.js 
[]

在下面找到我最不可行的例子:

const data = {
  currency: [{},
    {
      Name: 'Euro',
      Url: '/currencies/Euro/',
      Symbol: 'EUR',
      Price: '$76.3'
    },
    {
      Name: 'Dollar',
      Url: '/currencies/dollar/',
      Symbol: 'DOL',
      Price: '$27.61'
    },
    {
      Name: 'Yen',
      Url: '/currencies/yen/',
      Symbol: 'Yen',
      Price: '$638234.60'
    }
  ]
}


const coins = []
data.currency.forEach((cur) => {
  if (cur.CoinName) {
    coins.push({
      coinname: cur.Name,
      symbol: cur.Symbol,
      price: cur.Price,
      createdAt: new Date(),
      updatedAt: new Date(),
    })
  }
})

console.log(coins)

为什么coins数组中没有数据的任何建议?

感谢您的回复!

3 个答案:

答案 0 :(得分:2)

我看到你使用了cur.CoinName来获取值。在JSON文件中的任何地方都没有使用CoinName。相反,您可以像下面的代码一样使用'cur'。

const coins = []
data.currency.forEach((cur) => {
if (cur.Name) {
coins.push({
  coinname: cur.Name,
  symbol: cur.Symbol,
  price: cur.Price,
  createdAt: new Date(),
  updatedAt: new Date(),
})

} })

答案 1 :(得分:1)

const data = {
        currency: [{}, {
            Name: 'Euro',
            Url: '/currencies/Euro/',
            Symbol: 'EUR',
            Price: '$76.3'
        }, {
            Name: 'Dollar',
            Url: '/currencies/dollar/',
            Symbol: 'DOL',
            Price: '$27.61'
        }, {
            Name: 'Yen',
            Url: '/currencies/yen/',
            Symbol: 'Yen',
            Price: '$638234.60'
        }]
    }


    const coins = []
    data.currency.forEach((cur) => {
        if (cur.Name) {
            coins.push({
                coinname: cur.Name,
                symbol: cur.Symbol,
                price: cur.Price,
                createdAt: new Date(),
                updatedAt: new Date(),
            })
        }
    })

    console.log(coins)
  

用cur.Name替换if条件中的cur.CoinName,如cur.CoinName所示   没有任何关键。

答案 2 :(得分:1)

在if条件D obj; B *pb = &obj; // points at subobject assert(&obj == dynamic_cast<D*>(pb)); 中,您错过了属性名称if (cur.CoinName),它应该是cur.CoinName