我有几个问题如何访问json对象,但是我的问题略有不同。我的json对象看起来有点不同
这是我的json对象
data = ["data","{\"id\":\"fd00::212:4b00:197b:274a\",\"counter\":30,\"temperature\":2622,\"humidity\":4617,\"battery\":2828,\"timestamp\":\"04:48:50.816305\",\"date\":\"2019-04-26\",\"deviceType\":\"milo\"}"]
我要访问此json对象中的元素
realTime() {
this.webSocket.connect()
.subscribe(
(data:any) => {
console.log(data)
console.log(data[1].temperature)
this.device_id = data.id
this.temperature = data.temperature
this.humidity = data.humidity
})
}
我已尝试但无法正确访问元素
答案 0 :(得分:1)
data[1]
包含一个JSON字符串,而不是一个对象,因此您必须使用JSON.parse
方法对其进行解析。
console.log(JSON.parse(data[1]).temperature);
最终代码:
realTime() {
this.webSocket.connect()
.subscribe((data:any[]) => {
console.log(data)
let data1 = JSON.parse(data[1]);
console.log(data1.temperature)
this.device_id = data1.id
this.temperature = data1.temperature
this.humidity = data1.humidity
})
}
答案 1 :(得分:0)
JSON可用于键值对,因此请尝试使用以下解决方案来实现。
realTime() {
this.webSocket.connect()
.subscribe(
(data:any) => {
console.log(data);
console.log(data[1]["temperature"]);
this.device_id = data[1]["id"];
this.temperature = data[1]["temperature"];
this.humidity = data[1]["humidity"];
})
}