代码之家  ›  专栏  ›  技术社区  ›  Program-Me-Rev

如何在javascript中从JSON arry对象读取数据

  •  0
  • Program-Me-Rev  · 技术社区  · 6 年前

    我尝试从javascript中的JSON数组中获取一个值:

    JSON数组如下所示:

    [
       {
          "_id": 0,
          "_entityMetadataList": [
             {
                "_metadataValue": "/storage/emulated/0/DCIM/.thumbnails/1524101696032.jpg",
             },
             {
                "_metadataValue": "/storage/emulated/0/DCIM/.thumbnails/1524101694488.jpg",
             }
          ],
          "_timeCreated": "Tue Jan 15 06:10:04 2019\n",
          "_timeUpdated": "Tue Jan 15 06:10:04 2019\n",
          "objectEntity": {
             "_id": 0,
             "_EntitySiteGUID": -1
          }
       }
    ]
    

    我是怎么做的:

    app.post('/sound', function (req, res) {
        let entitiesArray = req.body['filter'];
    
        console.log('entitiesArray: ' + JSON.stringify(entitiesArray._entityMetadataList[0]._metadataValue))
    

    (顺便说一下,这是在节点环境中)

    但是,我不断地得到错误:

    TypeError: Cannot read property '0' of undefined  
    
    3 回复  |  直到 6 年前
        1
  •  4
  •   brk    6 年前

    似乎你还需要通过 revEntitiesArray .

    试试这个

    console.log('revEntitiesArray: ' + 
    JSON.stringify(revEntitiesArray[0]._revEntityMetadataList[0]._metadataValue))
    
        2
  •  1
  •   Niklas Rosencrantz    6 年前

    也许这个代码可以帮助

    data = [
       {
          "_id": 0,
          "_revEntityMetadataList": [
             {
                "_metadataValue": "/storage/emulated/0/DCIM/.thumbnails/1524101696032.jpg",
             },
             {
                "_metadataValue": "/storage/emulated/0/DCIM/.thumbnails/1524101694488.jpg",
             }
          ],
          "_timeCreated": "Tue Jan 15 06:10:04 2019\n",
          "_timeUpdated": "Tue Jan 15 06:10:04 2019\n",
          "revObjectEntity": {
             "_id": 0,
             "_revEntitySiteGUID": -1
          }
       }
    ]`
    
    data[0]["_revEntityMetadataList"][0]
    
        3
  •  0
  •   emilles    6 年前

    看起来您错过了最外面的引用是一个数组

    revEntitiesArray[0]._revEntityMetadataList[0]._metadataValue
    

    如果有疑问,请将路径表达式的每个部分赋给局部变量,并使用调试器进行单步执行。