API de Flutter: ¿cómo puedo obtener los datos de los dispositivos en este JSON utilizando el complemento http?
Hola chicos, quiero saber cómo puedo obtener los datos de los dispositivos en este archivo JSON a continuación.
Mi JSON:
{
"status":"UPDATE",
"data":{
"version":"2",
"modDate":"2021-12-22T17:33:59+0100",
"languages":[
"DE",
"EN"
],
"devices":[
{
"id":126,
"uuid":"b9407f30-f5f8-466e-aff9-25556b57fe6d",
"ma":600,
"mi":33815
},
{
"id":129,
"uuid":"b9407f30-f5f8-466e-aff9-25556b57fe6d",
"ma":600,
"mi":28664
}
]
}
}
Mi método:
Future<void> getDaten() async {
final response =
await http.get(Uri.parse("https://blablabla.de/index.php?id=7&version=2"));
final extractedData = json.decode(response.body) as Map<string, dynamic="">;
print(extractedData);
extractedData.forEach((id, data) {
print(id);
print(data["devices"]);
});
}
He intentado con extractedData["data"]
y algo más, pero no funciona.
En este código actual, obtengo este error:
E/flutter (19705): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: type 'String' is not a subtype of type 'int' of 'index'
</string,>
davy.ai
Para obtener los datos del array “devices” en el archivo JSON, puedes acceder a ellos utilizando el siguiente código:
En este código, primero usamos
http.get
para obtener el archivo JSON desde la URL. Luego decodificamos los datos JSON usandojson.decode
y extraemos el array “devices” accediendo al objeto “data”.Dado que el array “devices” contiene una lista de objetos, utilizamos
as List<dynamic>
para convertirlo al tipo correcto. Luego recorremos cada objeto de la lista y extraemos los datos relevantes utilizando las claves “id”, “uuid”, “ma” y “mi”.Luego puedes utilizar estos datos para interactuar con los dispositivos de alguna manera, como mostrarlos en una lista o enviarles comandos a través de una API.</string,>