WantedPerson.fromJson constructor

WantedPerson.fromJson(
  1. Map<String, dynamic> json
)

Creates a WantedPerson object from a JSON object.

Implementation

factory WantedPerson.fromJson(Map<String, dynamic> json) {
  String? id = json[ApiFields.id];

  if (id != null) {
    id = id.replaceAll('https://api.fbi.gov/@wanted-person/', '');
  }

  return WantedPerson(
    id: id,
    uid: json[ApiFields.uid],
    title: json[ApiFields.title],
    aliases: (json[ApiFields.aliases] as List?)
        ?.map((alias) => alias.toString())
        .toList(),
    description: json[ApiFields.description],
    images: (json[ApiFields.images] as List?)
        ?.map((wantedPerson) => FbiImage.fromJson(wantedPerson))
        .toList(),
    files: (json[ApiFields.files] as List?)
        ?.map((file) => WantedPersonFile.fromJson(file))
        .toList(),
    warningMessage: json[ApiFields.warningMessage],
    remarks: json[ApiFields.remarks],
    details: json[ApiFields.details],
    additionalInfo: json[ApiFields.additionalInfo],
    caution: json[ApiFields.caution],
    rewardText: json[ApiFields.rewardText],
    rewardMin: ((json[ApiFields.rewardMin]) as num?)?.toInt(),
    rewardMax: ((json[ApiFields.rewardMax]) as num?)?.toInt(),
    datesOfBirthUsed: (json[ApiFields.datesOfBirthUsed] as List?)
        ?.map((date) => date.toString())
        .toList(),
    placeOfBirth: json[ApiFields.placeOfBirth],
    locations: (json[ApiFields.locations] as List?)
        ?.map((location) => location.toString())
        .toList(),
    coordinates: (json[ApiFields.coordinates] as List?)
        ?.map((coordinate) => WantedPersonCoordinates.fromJson(coordinate))
        .toList(),
    fieldOffices: (json[ApiFields.fieldOffices] as List?)
        ?.map((office) => office.toString())
        .toList(),
    legatNames: (json[ApiFields.legatNames] as List?)
        ?.map((legat) => legat.toString())
        .toList(),
    status: json[ApiFields.status] == null
        ? null
        : WantedPersonStatus.fromString(json[ApiFields.status]),
    personClassification: json[ApiFields.personClassification] == null
        ? null
        : WantedPersonClassification.fromString(
            json[ApiFields.personClassification]),
    posterClassification: json[ApiFields.posterClassification] == null
        ? null
        : WantedPosterClassification.fromString(
            json[ApiFields.posterClassification]),
    subjects: (json[ApiFields.subjects] as List?)
        ?.map((subject) => subject.toString())
        .toList(),
    ncic: json[ApiFields.ncic],
    ageText: json[ApiFields.ageText],
    ageMin: ((json[ApiFields.ageMin]) as num?)?.toInt(),
    ageMax: ((json[ApiFields.ageMax]) as num?)?.toInt(),
    weightLbsText: json[ApiFields.weight],
    weightLbsMin: ((json[ApiFields.weightMin]) as num?)?.toInt(),
    weightLbsMax: ((json[ApiFields.weightMax]) as num?)?.toInt(),
    heightInchesMin: ((json[ApiFields.heightMin]) as num?)?.toInt(),
    heightInchesMax: ((json[ApiFields.heightMax]) as num?)?.toInt(),
    eyeColor: json[ApiFields.eyes],
    eyesRaw: json[ApiFields.eyesRaw],
    hairColor: json[ApiFields.hair],
    hairRaw: json[ApiFields.hairRaw],
    build: json[ApiFields.build],
    sex: json[ApiFields.sex],
    race: json[ApiFields.race],
    raceRaw: json[ApiFields.raceRaw],
    nationality: json[ApiFields.nationality],
    complexion: json[ApiFields.complexion],
    scarsAndMarks: json[ApiFields.scarsAndMarks],
    occupations: (json[ApiFields.occupations] as List?)
        ?.map((occupation) => occupation.toString())
        .toList(),
    possibleCountries: (json[ApiFields.possibleCountries] as List?)
        ?.map((country) => country.toString())
        .toList(),
    possibleStates: (json[ApiFields.possibleStates] as List?)
        ?.map((state) => state.toString())
        .toList(),
    modified: json[ApiFields.modified],
    publication: json[ApiFields.publication],
    path: json[ApiFields.path],
    languages: (json[ApiFields.languages] as List?)
        ?.map((language) => language.toString())
        .toList(),
    suspects: json[ApiFields.suspects],
  );
}