сталкиваются с трудностями при преобразовании json в дротик - PullRequest
0 голосов
/ 04 августа 2020

Я хотел создать файл .dart для ответа ниже json. Как я могу обрабатывать jsonArray и jsonResponse для одного и того же ключа sub_categories?

{
       "json":[
          {
             "sub_categories":[],
             "category_id":"82",
             "catgory_name":"1 Month",
             "parent_cat_id":"1"
          },
          {
             "sub_categories":{
                "catgory_name":"2 Year"
             },
             "category_id":"167",
             "catgory_name":"The Bible ASV",
             "parent_cat_id":"1"
          }
       ]
    }

Ответы [ 2 ]

0 голосов
/ 04 августа 2020

Вы можете легко скрыть json в дротике с помощью https://javiercbk.github.io/json_to_dart/ Код дротика будет

class Autogenerated {
  List<Json> json;

  Autogenerated({this.json});

  Autogenerated.fromJson(Map<String, dynamic> json) {
    if (json['json'] != null) {
      json = new List<Json>();
      json['json'].forEach((v) {
        json.add(new Json.fromJson(v));
      });
    }
  }

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

class Json {
  List<Null> subCategories;
  String categoryId;
  String catgoryName;
  String parentCatId;

  Json(
      {this.subCategories,
      this.categoryId,
      this.catgoryName,
      this.parentCatId});

  Json.fromJson(Map<String, dynamic> json) {
    if (json['sub_categories'] != null) {
      subCategories = new List<Null>();
      json['sub_categories'].forEach((v) {
        subCategories.add(new Null.fromJson(v));
      });
    }
    categoryId = json['category_id'];
    catgoryName = json['catgory_name'];
    parentCatId = json['parent_cat_id'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    if (this.subCategories != null) {
      data['sub_categories'] =
          this.subCategories.map((v) => v.toJson()).toList();
    }
    data['category_id'] = this.categoryId;
    data['catgory_name'] = this.catgoryName;
    data['parent_cat_id'] = this.parentCatId;
    return data;
  }
}
0 голосов
/ 04 августа 2020
  class UserResponse {
    List<User> user;

    UserResponse({this.user});

    UserResponse.fromJson(Map<String, dynamic> json) {
      if (json['json'] != null) {
        user = new List<User>();
        json['json'].forEach((v) {
          user.add(new User.fromJson(v));
        });
      }
    }

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

    class User {
      String categoryId;
      String catgoryName;
      String parentCatId;
      SubCategories subCategories;

      User(
          {this.categoryId,
          this.catgoryName,
          this.parentCatId,
          this.subCategories});

      User.fromJson(Map<String, dynamic> json) {
        categoryId = json['category_id'];
        catgoryName = json['catgory_name'];
        parentCatId = json['parent_cat_id'];
        subCategories = json['sub_categories'] != null
            ? new SubCategories.fromJson(json['sub_categories'])
            : null;
      }

      Map<String, dynamic> toJson() {
        final Map<String, dynamic> data = new Map<String, dynamic>();
        data['category_id'] = this.categoryId;
        data['catgory_name'] = this.catgoryName;
        data['parent_cat_id'] = this.parentCatId;
        if (this.subCategories != null) {
          data['sub_categories'] = this.subCategories.toJson();
        }
        return data;
      }
    }

    class SubCategories {
      String catgoryName;

      SubCategories({this.catgoryName});

      SubCategories.fromJson(Map<String, dynamic> json) {
        catgoryName = json['catgory_name'];
      }

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