NEWS
JSON Array in nodejs Objekt umwandeln
-
Moin Moin,
wie kann ich aus diesem JSON,
nodejs Datenpunkte erstellen?
{"statusCode":200,"body":"[{\"error\":{\"type\":3,\"address\":\"/lights/30\",\"description\":\"resource, /lights/30, not available\"}}]","headers":{"server":"nginx","date":"Wed, 16 Jan 2019 22:33:24 GMT","content-type":"application/json","connection":"close","cache-control":"no-store, no-cache, must-revalidate, post-check=0, pre-check=0","pragma":"no-cache","expires":"Mon, 1 Aug 2011 09:00:00 GMT","access-control-max-age":"3600","access-control-allow-origin":"*","access-control-allow-credentials":"true","access-control-allow-methods":"POST, GET, OPTIONS, PUT, DELETE, HEAD","access-control-allow-headers":"Content-Type"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"IP","port":80,"hostname":"IP","hash":null,"search":null,"query":null,"pathname":"/api/KEY/lights/30","path":"/api/KEY/lights/30","href":"http://IP/api/KEY/lights/30"},"method":"GET","headers":{}}}
Ich brauche:
type:
address:
description:
Dies funktioniert:
console.warn(response.statusCode)
Wenn ich:
console.warn(response.body)
eingebe bekomme ich den kompletten array als string ausgegeben.
Wenn ich:
console.warn(response.body[0]['error'].type)
oder
console.warn(response.body[0].error.type)
probiere bekomme ich einen TypeError.
Kann mir da jemand helfen?
Mit freundlichen Grüßen
Kevin
-
In Body steht es als String.
const body = JSON.parse(response.body);
Dann kannst du drauf zugreifen.
Gesendet vom Handy …
-
Aber meine response ist ein JSON.
Ich habe nur mit:
console.log(JSON.stringify(response));
lesbar im LOG gemacht und hier rein kopiert.
-
Aber meine response ist ein JSON.
Ich habe nur mit:
console.log(JSON.stringify(response));
lesbar im LOG gemacht und hier rein kopiert. `
Ich bin auch grad am Lernen, hatte vor Kurzem ein ähnliches Problem:
ich vermute, deine Frunktion sieht so aus: function (error, response, body) {
wenn dein body so ausschaut:
{"error":{"type":3,"address":"/lights/30","description":"resource, /lights/30, not available"}}
dann versuche mal:
var obj = JSON.parse(body); log('Type: ' + obj[Object.keys(obj)[0]].type); log('Address: ' + obj[Object.keys(obj)[0]].address); log('Description: ' + obj[Object.keys(obj)[0]].description);