我有一个看起来像
的服务器的响应[
{
"metric":{
"id":"b66178b8-dc18-11e8-9f8b-f2801f1b9fd1",
"name":"Detector de fum bucatarie",
"metricValueType":"DOUBLE",
"metricType":"DEVICE_VALUE",
"groupUUID":null,
"projectUUID":null,
"companyUUID":"ccab28ed-3dcf-411f-8748-ec7740ae559c",
"unit":null,
"formula":null
},
"data":{
"1550150771819":"10.310835857351371"
}
}
]
数据属性包含带时间戳和值的哈希图。当我尝试获得任何值时,我会恢复此错误:
myErrorTypeError: undefined is not an object (evaluating 'metricValues.metric.id')
如何访问属性?我尝试了这两种方法:
metricValues.metric.id
和
metricValues["metric"]["id"]
如何获得hashmap值?我已经尝试了:
const timestamp = Object.keys(metricValues.data)[0];
const values = Object.values(metricValues.data)[0];
您的数据是对象的数组。因此,即使您的数据只有一个对象,但它仍然是一系列对象。您的对象是数组的索引0。您可以按以下方式访问公制ID,
metricvalues [0] .metric.id
尝试此(放置 [0]
)
metricValues[0].metric.id
服务器中的响应是一个数组。公制对象位于该数组的第一个元素中。
要访问您需要传递该对象的索引中存在的索引中的ID。
这就是为什么使用:
metricValues[0].metric.id