Метод FromJSON() анализирует нулевые данные в flutter

#json #flutter #dart

#json #flutter #dart

Вопрос:

Я создал одну модель, подобную этой :

 class SalesRepResponse {
  bool errors;
  List<Data> data;
  int statusCode;

  SalesRepResponse({this.errors, this.data, this.statusCode});

  SalesRepResponse.fromJson(Map<String, dynamic> json) {
    errors = json['errors'];
    if (json['data'] != null) {
      data = new List<Data>();
      json['data'].forEach((v) {
        data.add(new Data.fromJson(v));
      });
    }
    statusCode = json['status_code'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['errors'] = this.errors;
    if (this.data != null) {
      data['data'] = this.data.map((v) => v.toJson()).toList();
    }
    data['status_code'] = this.statusCode;
    return data;
  }
}

class Data {
  int id;
  String displayName;

  Data({this.id, this.displayName});

  Data.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    displayName = json['display_name'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['id'] = this.id;
    data['display_name'] = this.displayName;
    return data;
  }
}
  

И я также получаю тот же ответ от API и анализирую данные следующим образом :

 var result = SalesRepResponse.fromJson(json.decode(response1.body));
  

Но он сохраняет все значения в классе SalesRepResponse / Data как null .

Кто-нибудь, пожалуйста, помогите мне с этим.

Заранее спасибо.

Ответ №1:

вы должны указать данные в вашем json следующим образом

 var result = SalesRepResponse.fromJson(json.decode(response1.body['data/etc']));
  

это означает, что вы должны указать данные, которые содержат данные для SalesRepResponse, проверив ваш ответ json

Комментарии:

1. Мы не можем передать строку в качестве параметра внутри массива.