无法读取React状态数据

时间:2017-11-06 18:03:39

标签: javascript json reactjs

我正在开发一个反应应用程序,在我的状态下,我保存了我尝试阅读的数据。当我 JSON.stringify 设备数据“console.log”'时,看起来像这样:

{
  "ActTime": 1509988664,
  "ServerTime": "2017-11-06 18:17:44",
  "Sunrise": "07:25",
  "Sunset": "15:53",
  "result": [
    {
      "AddjMulti": 1,
      "AddjMulti2": 1,
      "AddjValue": 0,
      "AddjValue2": 0,
      "BatteryLevel": 255,
      "CustomImage": 0,
      "Data": "On",
      "Description": "",
      "Favorite": 1,
      "HardwareID": 2,
      "HardwareName": "Controller",
      "HardwareType": "OpenZWave USB",
      "HardwareTypeVal": 21,
      "HaveDimmer": true,
      "HaveGroupCmd": true,
      "HaveTimeout": false,
      "ID": "00000501",
      "Image": "Light",
      "IsSubDevice": false,
      "LastUpdate": "2017-11-06 15:42:00",
      "Level": 0,
      "LevelInt": 0,
      "MaxDimLevel": 100,
      "Name": "Vardagsrum",
      "Notifications": "false",
      "PlanID": "0",
      "PlanIDs": [
        0
      ],
      "Protected": false,
      "ShowNotifications": true,
      "SignalLevel": "-",
      "Status": "On",
      "StrParam1": "",
      "StrParam2": "",
      "SubType": "Switch",
      "SwitchType": "On/Off",
      "SwitchTypeVal": 0,
      "Timers": "false",
      "Type": "Light/Switch",
      "TypeImg": "lightbulb",
      "Unit": 1,
      "Used": 1,
      "UsedByCamera": false,
      "XOffset": "0",
      "YOffset": "0",
      "idx": "3"
    }
  ],
  "status": "OK",
  "title": "Devices"
}

如果我想阅读状态数据我只是这样做:设备['状态'] 我得到“确定”,但如果我想访问结果该怎么办? 设备中的数据?

我认为设备['结果'] [0] ['状态'] 会给我'好的,但我只是得到未捕获的TypeError:无法读取属性'0'未定义 ???

如何读取设备中的结果数据?

2 个答案:

答案 0 :(得分:0)

要执行此操作device['result'][0]['Status'],您需要确保您的设备数据不是字符串,而是正确的JSON对象。如果它还不是对象,您可以JSON.parse()进行转换。 在尝试之前,请确保数据可用。

答案 1 :(得分:-1)

尝试在结果数组上使用map方法。

这样的事情:

result.map((item,index)=>{

   console.log(item[index].AddjMulti);

})