Анализ флаттера json Данные - Нет данных - PullRequest
0 голосов
/ 05 мая 2020

enter image description here

Я пишу приложение flutter, используя node js и mongoDb в бэкенде. Я хочу сделать запрос на получение, он работает, сервер отправляет данные, но когда Я пытаюсь отобразить данные, которые я не нашел, в моментальном снимке нет данных, которые указаны в базе данных робота 3T

   /* 1 */
{
    "_id" : ObjectId("5e7c996fd6eb5f039c50bd26"),
    "imei" : "865566048694354",
    "createdAt" : ISODate("2020-03-26T12:00:47.021Z"),
    "updatedAt" : ISODate("2020-03-26T12:00:47.021Z"),
    "__v" : 0
}

/* 2 */
{
    "_id" : ObjectId("5ea8357d8c562b3dd8fe5bf1"),
    "imei" : {
        "test" : {
            "tactileState" : "ignore",
            "pixelState" : "ignore"
        },
        "name" : "h12hhhhgkhh"
    },
    "createdAt" : ISODate("2020-04-28T13:54:05.094Z"),
    "updatedAt" : ISODate("2020-04-28T13:54:05.094Z"),
    "__v" : 0
}

/* 3 */
{
    "_id" : ObjectId("5ea8366741a5e527446744a2"),
    "imei" : {
        "test" : {
            "tactileState" : "ignore",
            "pixelState" : "ignore"
        },
        "name" : "h12hhhhgkhh"
    },
    "createdAt" : ISODate("2020-04-28T13:57:59.035Z"),
    "updatedAt" : ISODate("2020-04-28T13:57:59.035Z"),
    "__v" : 0
}

/* 4 */
{
    "_id" : ObjectId("5ea837614cf7ed30f0163c38"),
    "imei" : {
        "test" : {
            "tactileState" : "ignore",
            "pixelState" : "ignore",
            "greyState" : "ignore"
        },
        "name" : "h12hhhhgkhh"
    },
    "createdAt" : ISODate("2020-04-28T14:02:09.395Z"),
    "updatedAt" : ISODate("2020-04-28T14:02:09.395Z"),
    "__v" : 0
}

/* 5 */
{
    "_id" : ObjectId("5ea837854cf7ed30f0163c39"),
    "imei" : {
        "test" : {
            "bafleState" : "1",
            "microState" : "1",
            "vibreurState" : "1"
        },
        "name" : "h12hhhhgkhh"
    },
    "createdAt" : ISODate("2020-04-28T14:02:45.287Z"),
    "updatedAt" : ISODate("2020-04-28T14:02:45.287Z"),
    "__v" : 0
}

/* 6 */
{
    "_id" : ObjectId("5ea8379a4cf7ed30f0163c3a"),
    "imei" : {
        "test" : {
            "bafleState" : "ignore",
            "microState" : "ignore",
            "vibreurState" : "ignore"
        },
        "name" : "h12hhhhgkhh"
    },
    "createdAt" : ISODate("2020-04-28T14:03:06.156Z"),
    "updatedAt" : ISODate("2020-04-28T14:03:06.156Z"),
    "__v" : 0
}

/* 7 */
{
    "_id" : ObjectId("5ea837ad4cf7ed30f0163c3b"),
    "imei" : {
        "test" : {
            "boutonState" : "1"
        },
        "name" : "h12hhhhgkhh"
    },
    "createdAt" : ISODate("2020-04-28T14:03:25.212Z"),
    "updatedAt" : ISODate("2020-04-28T14:03:25.212Z"),
    "__v" : 0
}

/* 8 */
{
    "_id" : ObjectId("5ea838d04cf7ed30f0163c3c"),
    "imei" : {
        "test" : {
            "boutonState" : "1",
            "kitState" : "ignore",
            "usbState" : "1",
            "batterieState" : "0"
        },
        "name" : "h12hhhhgkhh"
    },
    "createdAt" : ISODate("2020-04-28T14:08:16.383Z"),
    "updatedAt" : ISODate("2020-04-28T14:08:16.383Z"),
    "__v" : 0
}

/* 9 */
{
    "_id" : ObjectId("5ea8393c4cf7ed30f0163c3d"),
    "imei" : {
        "test" : {
            "boutonState" : "1",
            "kitState" : "ignore",
            "usbState" : "1",
            "batterieState" : "Good"
        },
        "name" : "h12hhhhgkhh"
    },
    "createdAt" : ISODate("2020-04-28T14:10:04.519Z"),
    "updatedAt" : ISODate("2020-04-28T14:10:04.519Z"),
    "__v" : 0
}

/* 10 */
{
    "_id" : ObjectId("5ea839754cf7ed30f0163c3e"),
    "imei" : {
        "test" : {
            "wifiState" : "0",
            "gpsState" : "0"
        },
        "name" : "h12hhhhgkhh"
    },
    "createdAt" : ISODate("2020-04-28T14:11:01.631Z"),
    "updatedAt" : ISODate("2020-04-28T14:11:01.631Z"),
    "__v" : 0
}

, и это класс, который я использую для анализа json данных

class Phone{
Imei imei;
Test test;
Phone({this.test,this.imei});
factory Phone.fromJson(Map<String,dynamic>json){
return Phone(
test: Test.fromJson(json ['test']),
  imei: Imei.fromJson(json ['imei']),);
}
}
class Test {

String batterieState;
String wifiState;
String pixelState;
String bluetoothState;
String gpsState;
String tactileState;
String bafleState;
String microState;
String vibreurState;
String camerafrontState;
String camerabackState;
String boutonState;
String usbState;
String kitState;
String geroscopeState;
String empreinteState;
String captState;
String greyState;
String proximiteState;
String lumiereState;

Test({this.lumiereState,this.proximiteState,this.bluetoothState,this.batterieState,this.usbState,this.kitState,this.greyState,this.bafleState,this.boutonState,this.camerabackState,this.camerafrontState,this.captState,this.empreinteState,this.geroscopeState,this.gpsState,this.microState,this.pixelState,this.tactileState,this.vibreurState,this.wifiState});

factory Test.fromJson(Map<String,dynamic>json){
return Test(
lumiereState: json ['lumiereState'],
proximiteState: json ['proximiteState'],
boutonState: json ['boutonState'],
bluetoothState: json ['bluetoothState'],
bafleState: json ['bafleState'],
batterieState: json ['batterieState'],
vibreurState: json ['vibreurState'],
camerabackState: json ['camerabackState'],
empreinteState: json ['empreinteState'],
usbState: json ['usbState'],
camerafrontState: json ['camerafrontState'],
wifiState: json ['wifiState'],
tactileState: json ['tactileState'],
pixelState: json ['pixelState'],
microState: json ['microState'],
gpsState: json ['gpsState'],
geroscopeState: json ['geroscopeState'],
captState: json ['captState'],
greyState: json ['greyState'],
kitState: json ['kitState'],


);
}
}

class Imei {
  String name;

  Imei({this.name});

  factory Imei.fromJson(Map<String, dynamic>json){
    return Imei(
      name: json ['name'],
    );
  }
}

Это метод получения запроса во флаттере

 Future <List<Phone>> getData() async{
    final response = await http.get('http://192.168.43.24:27017/api/posts');
    if(response.statusCode==200){
      List phones =json.decode(response.body);
      return phones.map((phone)=>new Phone.fromJson(

          phone)).toList();
    }
    else {
      throw Exception('Failed to load Users');
    }
  }

когда я проверяю сервер, я обнаружил, что метод работает, и сервер отправляет данные, и это метод отображения данных в приложении

@override
  Widget build(BuildContext context) {
    return MaterialApp(
        home:Scaffold(
          appBar: AppBar(
            title: Text('Mes Smartphones'),
          ),
          body: Center(
            child: FutureBuilder<List<Phone>>(
              future: getData(),
              builder: (context,snapshot){
                if(snapshot.hasData){
                  List<Phone> phones =snapshot.data;
                  return new ListView(
                    children:phones.map((phone) =>Column(
                      children: <Widget>[
                        ListTile(
                          subtitle: Text('bonjour${phone.imei.name}'),
                        ),


                      ],
                    )).toList(),
                  );
                }
                else if(snapshot.hasError){
                return Column(children: <Widget>[
                  Text(snapshot.toString()),
                  Text(snapshot.hasData.toString()),
                   Text(snapshot.error.toString())]);
                }
                return new CircularProgressIndicator();
              },

в моментальном снимке всегда нет данных, я ищу помощь и благодарю вас

и это скриншот того, что он возвращает

...