从Flutter检索到的JSON获取值时出错

问题描述

在flutter应用程序中将数据提取到字段中时,出现错误。 JSON数据已被获取。在执行以下代码时出现错误。我应该如何解决?

错误:

VERBOSE-2:ui_dart_state.cc(166)]未处理的异常:类型'(dynamic)=> Null'不是类型'(String,dynamic)=> void'的'f'

呼叫

 orderdetail = OrderModel.fromJson(json.decode(response.body));

完整代码:

OrderModel.fromJson(Map<String,dynamic> json) {
    error = json['error'];
    if (json['content'] != null) {
      content = new List<OrderContent>();

     //here the error occurs
      json['content'].forEach((v) {
        content.add(new OrderContent.fromJson(v));
      });
    }
  }

订购内容分类

class OrderContent {
  String code;
  String name;

  String ordernumber;
  var order_header;

  OrderContent({this.code,this.name,this.ordernumber,this.order_header});

  OrderContent.fromJson(Map<String,dynamic> json) {
    code = json['code'];
    name = json['name'];
    ordernumber = json['order_no'];
    order_header = json["order_header"];
  }

  Map<String,dynamic> toJson() {
    final Map<String,dynamic> data = new Map<String,dynamic>();
    data['id'] = this.code;
    data['name'] = this.name;
    data['order_header'] = this.order_header;
    data['order_no'] = this.ordernumber;
    return data;
  }
}

我已经如上所述发布了OrderContent类,以供数据参考

我在下面工作的JSON数据结构

{
    "error": "false","content": {
        "16": [
            [
                {
                    "sod_pk": "31688","soh_fk": "23660","sqd_fk": "33294","order_header": {
                        "soh_pk": "23660","order_no": "16",}
                }
            ],[
                {
                    "sod_pk": "31689","sqd_fk": "33293",}
                }
            ]
        ],"18": [
            [
                {
                    "sod_pk": "31744","soh_fk": "23702","sqd_fk": "33354","order_header": {
                        "soh_pk": "23702","order_no": "18",[
                {
                    "sod_pk": "31745","sqd_fk": "33356",]
    }
}

上面的JSON数据结构在每个商品详细信息中都没有嵌套的订单,必须在所有订单编号中提取订单,然后在订单的各个数据中进行提取。由此可以清楚地了解导致错误的原因。

解决方法

在下面尝试我的代码:

Map<dynamic,dynamic> response = {
    'error': 'false','content': [
      {
        'code': 'Code1','name': 'Name1','order_no': '25','order_header': 'Head1'
      },{
        'code': 'Code2','name': 'Name2','order_no': '50','order_header': 'Head2'
      }
    ]
  };

  List<OrderContent> result = response["content"].map<OrderContent>((item) => OrderContent.fromJson(item)).toList();
  print(result[0].code);
  print(result[0].name);
  print(result[0].ordernumber);
  print(result[0].order_header);
  //Code1
  //Name1
  //25
  //Head1

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...