未捕获(承诺)错误:需要类型为“String”的值,但得到类型为“_JsonMap”的值

时间:2021-06-17 16:25:09

标签: flutter dart

我有一个 HTTP 请求,它返回一个 JSON 对象,其中包含一个对象。 我正在尝试使用第二个对象中的数据,但我不断收到上述错误。

我正在尝试执行 HTTP 请求。然后映射数据然后我希望映射的数据允许我根据接收到的数据的结果显示不同的信息。 这是我的模型

[testdata]# ls -Z /data/dbdata
system_u:object_r:postgresql_db_t:s0 kongdata

[testdata]# ls -Z /data/wals
unconfined_u:object_r:unlabeled_t:s0 kongwals

[testata]# chcon -Rv -u system_u -t postgresql_db_t /data/wals
changing security context of '/data/wals/testwals/archive_status'
changing security context of '/data/wals/testwals/000000010000000000000001'
changing security context of '/data/wals/testwals'
changing security context of '/data/wals'

[kongdata]# restorecon -R -v /data/wals

[kongdata]# ls -Z /data/wals
system_u:object_r:postgresql_db_t:s0 kongwals

[testdata]# service postgresql restart
Redirecting to /bin/systemctl restart postgresql.service

[testdata]# service postgresql status
Redirecting to /bin/systemctl status postgresql.service
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-06-17 16:11:35 UTC; 7s ago
  Process: 54463 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
 Main PID: 54465 (postmaster)
    Tasks: 8 (limit: 4625)
   Memory: 16.9M
   CGroup: /system.slice/postgresql.service
           ├─54465 /usr/bin/postmaster -D /data/dbdata/testdata
           ├─54467 postgres: logger process
           ├─54469 postgres: checkpointer process
           ├─54470 postgres: writer process
           ├─54471 postgres: wal writer process
           ├─54472 postgres: autovacuum launcher process
           ├─54473 postgres: stats collector process
           └─54474 postgres: bgworker: logical replication launcher

Jun 17 16:11:35 ip-10-0-1-120.ap-south-1.compute.internal systemd[1]: Starting PostgreSQL database server...
Jun 17 16:11:35 ip-10-0-1-120.ap-south-1.compute.internal postmaster[54465]: 2021-06-17 16:11:35.799 UTC [54465] LOG:  listening on IPv4>
Jun 17 16:11:35 ip-10-0-1-120.ap-south-1.compute.internal postmaster[54465]: 2021-06-17 16:11:35.799 UTC [54465] LOG:  listening on IPv6>
Jun 17 16:11:35 ip-10-0-1-120.ap-south-1.compute.internal postmaster[54465]: 2021-06-17 16:11:35.800 UTC [54465] LOG:  listening on Unix>
Jun 17 16:11:35 ip-10-0-1-120.ap-south-1.compute.internal postmaster[54465]: 2021-06-17 16:11:35.803 UTC [54465] LOG:  listening on Unix>
Jun 17 16:11:35 ip-10-0-1-120.ap-south-1.compute.internal postmaster[54465]: 2021-06-17 16:11:35.813 UTC [54465] LOG:  redirecting log o>
Jun 17 16:11:35 ip-10-0-1-120.ap-south-1.compute.internal postmaster[54465]: 2021-06-17 16:11:35.813 UTC [54465] HINT:  Future log outpu>
Jun 17 16:11:35 ip-10-0-1-120.ap-south-1.compute.internal systemd[1]: Started PostgreSQL database server.
 ESCOC

这是我的 HTTP 请求

import 'dart:convert';

class Psi {
  Psi({
    this.invoiceNo,
    this.events,
  });

  String invoiceNo;
  List<Event> events;

  factory Psi.fromJson(String str) => Psi.fromMap(json.decode(str));

  String toJson() => json.encode(toMap());

  factory Psi.fromMap(Map<String, dynamic> json) => Psi(
        invoiceNo: json["invoice_no"],
        events: List<Event>.from(json["events"].map((x) => Event.fromMap(x))),
      );

  Map<String, dynamic> toMap() => {
        "invoice_no": invoiceNo,
        "events": List<dynamic>.from(events.map((x) => x.toMap())),
      };
}

class Event {
  Event({
    this.eventType,
    this.orderNo,
    this.eventDatetime,
    this.eventPerson,
    this.promisedDeliveryDate,
    this.eventDescription,
    this.waybillEventType,
    this.eventNumber,
  });

  String eventType;
  String orderNo;
  DateTime eventDatetime;
  String eventPerson;
  String promisedDeliveryDate;
  String eventDescription;
  String waybillEventType;
  String eventNumber;

  factory Event.fromJson(String str) => Event.fromMap(json.decode(str));

  String toJson() => json.encode(toMap());

  factory Event.fromMap(Map<String, dynamic> json) => Event(
        eventType: json["event_type"],
        orderNo: json["order_no"],
        eventDatetime: DateTime.parse(json["event_datetime"]),
        eventPerson: json["event_person"],
        promisedDeliveryDate: json["promised_delivery_date"],
        eventDescription: json["event_description"],
        waybillEventType: json["waybill_event_type"],
        eventNumber: json["event_number"],
      );

  Map<String, dynamic> toMap() => {
        "event_type": eventType,
        "order_no": orderNo,
        "event_datetime": eventDatetime.toIso8601String(),
        "event_person": eventPerson,
        "promised_delivery_date": promisedDeliveryDate,
        "event_description": eventDescription,
        "waybill_event_type": waybillEventType,
        "event_number": eventNumber,
      };
}

这是我试图显示所有内容的主页


import 'package:dtc/models/http-model.dart';
import 'package:http/http.dart';

class HttpService {
  final String url = '*';

// ignore: missing_return
  Future<Psi> getInfo(String search) async {
    Response res = await get(url + search);

    print(jsonEncode(jsonDecode(res.body)));

    if (res.statusCode == 200) {
      return Psi.fromJson(jsonDecode(res.body));
    } else if (res.statusCode == 404) {
      print("Please double check your input");
    } else {
      print("There seems to be a server error");
    }
  }
}

eventNumber(List<Event> event, search) {
  event.forEach((element) {
    print('This is working');
    if (element.eventNumber == "1" && element.eventType == "20") {
      search = '1';
      return search;
    } else if (element.eventNumber == "1" && element.eventType == "21") {
      search = '1';
      return search;
    } else if (element.eventNumber == '1' && element.eventType == '22') {
      search = '1';
      return search;
    } else if (element.eventNumber == '1' && element.eventType == '23') {
      search = '1';
      return search;
    } else if (element.eventNumber == '1' && element.eventType == '24') {
      search = '1';
      return search;
    }
    print(search);
    return search;
  });
}

0 个答案:

没有答案