I came accross following tool to convert your complex JSON object into Model class.

https://app.quicktype.io

Lets say we want to convert following json into dart,

[
  {
    "_id": "604ee2125b8ad25588c8b679",
    "index": 0,
    "guid": "8ca23184-88a8-43fb-94d4-8df738ca158a",
    "isActive": true,
    "balance": "$3,909.13",
    "picture": "http://placehold.it/32x32",
    "age": 28,
    "eyeColor": "blue",
    "name": {
      "first": "Green",
      "last": "Wall"
    }
  },
  {
    "_id": "604ee21251196d869827051e",
    "index": 1,
    "guid": "62e6114a-5ebc-44f1-af94-cc693622e317",
    "isActive": false,
    "balance": "$2,124.95",
    "picture": "http://placehold.it/32x32",
    "age": 39,
    "eyeColor": "blue",
    "name": {
      "first": "Eva",
      "last": "Beasley"
    }
  }
]

This is the quick result. You can save atleast

// To parse this JSON data, do
//
//     final helloClass = helloClassFromJson(jsonString);

import 'dart:convert';

class HelloClass {
    HelloClass({
        this.id,
        this.index,
        this.guid,
        this.eyeColor,
        this.name,
    });

    String id;
    int index;
    String guid;
    String eyeColor;
    Name name;

    factory HelloClass.fromRawJson(String str) => HelloClass.fromJson(json.decode(str));

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

    factory HelloClass.fromJson(Map<String, dynamic> json) => HelloClass(
        id: json["_id"],
        index: json["index"],
        guid: json["guid"] == null ? null : json["guid"],
        eyeColor: json["eyeColor"],
        name: Name.fromJson(json["name"]),
    );

    Map<String, dynamic> toJson() => {
        "_id": id,
        "index": index,
        "guid": guid == null ? null : guid,
        "eyeColor": eyeColor,
        "name": name.toJson(),
    };
}

class Name {
    Name({
        this.first,
        this.last,
    });

    String first;
    String last;

    factory Name.fromRawJson(String str) => Name.fromJson(json.decode(str));

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

    factory Name.fromJson(Map<String, dynamic> json) => Name(
        first: json["first"],
        last: json["last"],
    );

    Map<String, dynamic> toJson() => {
        "first": first,
        "last": last,
    };
}

Hope you will enjoy this tool!