Вложенный парсинг JSON Flutter

У меня есть вложенный JSON api здесь:

[
  {
    "Employee": {
      "Name": "Michael Jackson",
      "Identification": "881228145031",
      "Company": "Test Corporate",
      "DateOfBirth": "1988-12-28",
      "Entitlements": {
        "GP": {
          "Entitlement": "10000",
          "Utilisation": "500",
          "Balance": "9500"
        },
        "OPS": {
          "Entitlement": "10000",
          "Utilisation": "500",
          "Balance": "9500"
        },
        "IP": {
          "Entitlement": "50000",
          "Utilisation": "17000",
          "Balance": "33000"
        },
        "Dental": {
          "Entitlement": "0.00",
          "Utilisation": "0.00",
          "Balance": "0.00"
        },
        "Optical": {
          "Entitlement": "500",
          "Utilisation": "0.00",
          "Balance": "500"
        },
        "EHS": {
          "Entitlement": "1000",
          "Utilisation": "250",
          "Balance": "750"
        }
      }
    },
    "Dependents": [
      {
        "Name": "Kim",
        "Relationship": "Parent",
        "Entitlements": {
          "GP": {
            "Entitlement": "10000",
            "Utilisation": "500",
            "Balance": "9500"
          },
          "OPS": {
            "Entitlement": "10000",
            "Utilisation": "500",
            "Balance": "9500"
          },
          "IP": {
            "Entitlement": "50000",
            "Utilisation": "17000",
            "Balance": "33000"
          },
          "Dental": {
            "Entitlement": "800",
            "Utilisation": "200",
            "Balance": "600"
          },
          "Optical": {
            "Entitlement": "500",
            "Utilisation": "0.00",
            "Balance": "500"
          },
          "EHS": {
            "Entitlement": "1000",
            "Utilisation": "250",
            "Balance": "750"
          }
        }
      },
      {
        "Name": "Tim",
        "Relationship": "Spouse",
        "Entitlements": {
          "GP": {
            "Entitlement": "10000",
            "Utilisation": "500",
            "Balance": "9500"
          },
          "OPS": {
            "Entitlement": "10000",
            "Utilisation": "500",
            "Balance": "9500"
          }
        }
      }
    ]
  }
]

Как видите, файл JSON имеет одно и то же гнездо в Наемный рабочий и Иждивенцы, называемое Права, и в нем есть несколько карт.

Базовый класс модели для Наемный рабочий и Иждивенцы выглядит следующим образом:

crm_single_user_model.dart (Модель для сотрудника)

class SingleUser{

  final String name, identification, company, dob;

  SingleUser({this.name, this.identification, this.company, this.dob});

  factory SingleUser.fromJson(Map<String, dynamic> ujson){

    return SingleUser(
      name: ujson["Name"].toString(),
      identification: ujson["Identification"].toString(),
      company: ujson["Company"].toString(),
      dob: ujson["DateOfBirth"].toString()
    );
  }
}

crm_dependent_list_model.dart (Модель для иждивенцев)

class DependantModel{

  String name;
  String relationship;

  DependantModel({this.name, this.relationship});

  factory DependantModel.fromJson(Map<String, dynamic> depjson){

    return DependantModel(
      name: depjson["Name"].toString(),
      relationship: depjson["Relationship"].toString()
    );
  }
}

У меня вопрос Как мне создать модельный класс для Правил?

Кажется, я не могу придумать решение для создания класса модели с большим количеством карт внутри карты.

Ваша помощь очень ценится в этом вопросе.

просто сохраните это на карте

diegoveloper 17.08.2018 15:34

Вы можете использовать карту и перебирать значения карты для анализа массива. Если вам нужен пример кода, дайте мне знать. Я могу объяснить, как преобразовать ответ JSON в POJO-эквивалент Java.

Jaswant Singh 17.08.2018 16:21

Да, Джасвант, я мог бы использовать пример кода, если это не слишком сложно.

Asyraf Dayan 18.08.2018 03:53

@JaswantSingh, извините, забыл пометить ваше имя.

Asyraf Dayan 20.08.2018 03:58

Вы можете проверить json_resolve dev.to/onmyway133/how-to-resolve-deep-json-object-in-dart-5c‌ 5l

onmyway133 08.04.2019 23:53
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
2
5
4 646
1

Ответы 1

попробуйте увидеть этот пример

https://medium.com/flutter-community/parsing-complex-json-in-flutter-747c46655f51

class Product {
  final int id;
  final String name;
  final List<Image> images;

  Product({this.id, this.name, this.images});
}

class Image {
  final int imageId;
  final String imageName;

  Image({this.imageId, this.imageName});
}

Другие вопросы по теме