簡體   English   中英

Flutter:如何在 flutter 中實現這一點?

[英]Flutter : How can i achieve this in flutter?

[{serialNumber: VNPT29102021, modelName: GW040H, deviceMac: d4:9a:a0:91:55:c8, deviceType: 3, deviceTypeName: ONTMESH, ipAddr: 192.168.1.1, deviceList: [{modelName: EW12ST000T0004, deviceMac: cc: 71:90:4a:24:f4,序列號:1291111264A24F2,ipAddr:192.168.1.3,deviceType:1},{modelName:EW12ST000T0004,deviceMac:cc:71:90:4a:25:08,serialNumber:1291111264A2506,ipAddr: 192.168.1.4,設備類型:2}],authenString:,dbVersion:1,cookies:}]

我有一個類似上面的列表。 如何在此列表中獲取“modelName”?

首先,這不是一個有效的 dart 列表。 如果列表如下所示,您可以像這樣訪問 modelName:

final list = [{"modelName": "GW040H",}];

final modelName = list[0]["modelName"]

將 json 轉換為 model

class Model {
  String? serialNumber;
  String? modelName;
  String? deviceMac;
  int? deviceType;
  String? deviceTypeName;
  String? ipAddr;
  List<DeviceList>? deviceList;
  String? authenString;
  int? dbVersion;
  String? cookies;

  Model(
      {this.serialNumber,
        this.modelName,
        this.deviceMac,
        this.deviceType,
        this.deviceTypeName,
        this.ipAddr,
        this.deviceList,
        this.authenString,
        this.dbVersion,
        this.cookies});

  Model.fromJson(Map<String, dynamic> json) {
    serialNumber = json['serialNumber'];
    modelName = json['modelName'];
    deviceMac = json['deviceMac'];
    deviceType = json['deviceType'];
    deviceTypeName = json['deviceTypeName'];
    ipAddr = json['ipAddr'];
    if (json['deviceList'] != null) {
      deviceList = <DeviceList>[];
      json['deviceList'].forEach((v) {
        deviceList!.add(DeviceList.fromJson(v));
      });
    }
    authenString = json['authenString'];
    dbVersion = json['dbVersion'];
    cookies = json['cookies'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = <String, dynamic>{};
    data['serialNumber'] = serialNumber;
    data['modelName'] = modelName;
    data['deviceMac'] = deviceMac;
    data['deviceType'] = deviceType;
    data['deviceTypeName'] = deviceTypeName;
    data['ipAddr'] = ipAddr;
    if (deviceList != null) {
      data['deviceList'] = deviceList!.map((v) => v.toJson()).toList();
    }
    data['authenString'] = authenString;
    data['dbVersion'] = dbVersion;
    data['cookies'] = cookies;
    return data;
  }
}

class DeviceList {
  String? modelName;
  String? deviceMac;
  String? serialNumber;
  String? ipAddr;
  int? deviceType;

  DeviceList(
      {this.modelName,
        this.deviceMac,
        this.serialNumber,
        this.ipAddr,
        this.deviceType});

  DeviceList.fromJson(Map<String, dynamic> json) {
    modelName = json['modelName'];
    deviceMac = json['deviceMac'];
    serialNumber = json['serialNumber'];
    ipAddr = json['ipAddr'];
    deviceType = json['deviceType'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = <String, dynamic>{};
    data['modelName'] = modelName;
    data['deviceMac'] = deviceMac;
    data['serialNumber'] = serialNumber;
    data['ipAddr'] = ipAddr;
    data['deviceType'] = deviceType;
    return data;
  }
}

您可以在 deviceList 中獲取modelName

Model.deviceList[0].modelName

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM