CourseInstance.fromJson constructor

CourseInstance.fromJson(
  1. dynamic json
)

Implementation

factory CourseInstance.fromJson(dynamic json) {
  if (json is String) {
    final obj = CourseInstance();
    return obj;
  }
  if (json is! Map<String, dynamic>) return CourseInstance();
  final obj = CourseInstance();
  if (json['courseMode'] != null) {
    final val = json['courseMode'];
    if (val is List) {
      obj.courseMode = val.map((e) => TextOrURL.fromJson(e)).toList();
    } else {
      obj.courseMode = [TextOrURL.fromJson(val)];
    }
  }
  if (json['courseSchedule'] != null) {
    final val = json['courseSchedule'];
    if (val is List) {
      obj.courseSchedule = val.map((e) => Schedule.fromJson(e)).toList();
    } else {
      obj.courseSchedule = [Schedule.fromJson(val)];
    }
  }
  if (json['courseWorkload'] != null) {
    final val = json['courseWorkload'];
    if (val is List) {
      obj.courseWorkload = val.map((e) => e.toString()).toList();
    } else {
      obj.courseWorkload = [val.toString()];
    }
  }
  if (json['instructor'] != null) {
    final val = json['instructor'];
    if (val is List) {
      obj.instructor = val.map((e) => Person.fromJson(e)).toList();
    } else {
      obj.instructor = [Person.fromJson(val)];
    }
  }
  if (json['about'] != null) {
    final val = json['about'];
    if (val is List) {
      obj.about = val.map((e) => Thing.fromJson(e)).toList();
    } else {
      obj.about = [Thing.fromJson(val)];
    }
  }
  if (json['actor'] != null) {
    final val = json['actor'];
    if (val is List) {
      obj.actor = val.map((e) => PerformingGroupOrPerson.fromJson(e)).toList();
    } else {
      obj.actor = [PerformingGroupOrPerson.fromJson(val)];
    }
  }
  if (json['aggregateRating'] != null) {
    final val = json['aggregateRating'];
    if (val is List) {
      obj.aggregateRating = val.map((e) => AggregateRating.fromJson(e)).toList();
    } else {
      obj.aggregateRating = [AggregateRating.fromJson(val)];
    }
  }
  if (json['attendee'] != null) {
    final val = json['attendee'];
    if (val is List) {
      obj.attendee = val.map((e) => OrganizationOrPerson.fromJson(e)).toList();
    } else {
      obj.attendee = [OrganizationOrPerson.fromJson(val)];
    }
  }
  if (json['attendees'] != null) {
    final val = json['attendees'];
    if (val is List) {
      obj.attendees = val.map((e) => OrganizationOrPerson.fromJson(e)).toList();
    } else {
      obj.attendees = [OrganizationOrPerson.fromJson(val)];
    }
  }
  if (json['audience'] != null) {
    final val = json['audience'];
    if (val is List) {
      obj.audience = val.map((e) => Audience.fromJson(e)).toList();
    } else {
      obj.audience = [Audience.fromJson(val)];
    }
  }
  if (json['composer'] != null) {
    final val = json['composer'];
    if (val is List) {
      obj.composer = val.map((e) => OrganizationOrPerson.fromJson(e)).toList();
    } else {
      obj.composer = [OrganizationOrPerson.fromJson(val)];
    }
  }
  if (json['contributor'] != null) {
    final val = json['contributor'];
    if (val is List) {
      obj.contributor = val.map((e) => OrganizationOrPerson.fromJson(e)).toList();
    } else {
      obj.contributor = [OrganizationOrPerson.fromJson(val)];
    }
  }
  if (json['director'] != null) {
    final val = json['director'];
    if (val is List) {
      obj.director = val.map((e) => Person.fromJson(e)).toList();
    } else {
      obj.director = [Person.fromJson(val)];
    }
  }
  if (json['doorTime'] != null) {
    final val = json['doorTime'];
    if (val is List) {
      obj.doorTime = val.map((e) => SchemaDateTimeOrTime.fromJson(e)).toList();
    } else {
      obj.doorTime = [SchemaDateTimeOrTime.fromJson(val)];
    }
  }
  if (json['duration'] != null) {
    final val = json['duration'];
    if (val is List) {
      obj.duration = val.map((e) => QuantitativeValueOrSchemaDuration.fromJson(e)).toList();
    } else {
      obj.duration = [QuantitativeValueOrSchemaDuration.fromJson(val)];
    }
  }
  if (json['endDate'] != null) {
    final val = json['endDate'];
    if (val is List) {
      obj.endDate = val.map((e) => DateOrSchemaDateTime.fromJson(e)).toList();
    } else {
      obj.endDate = [DateOrSchemaDateTime.fromJson(val)];
    }
  }
  if (json['eventAttendanceMode'] != null) {
    final val = json['eventAttendanceMode'];
    if (val is List) {
      obj.eventAttendanceMode = val.map((e) => EventAttendanceModeEnumeration.fromJson(e)).toList();
    } else {
      obj.eventAttendanceMode = [EventAttendanceModeEnumeration.fromJson(val)];
    }
  }
  if (json['eventSchedule'] != null) {
    final val = json['eventSchedule'];
    if (val is List) {
      obj.eventSchedule = val.map((e) => Schedule.fromJson(e)).toList();
    } else {
      obj.eventSchedule = [Schedule.fromJson(val)];
    }
  }
  if (json['eventStatus'] != null) {
    final val = json['eventStatus'];
    if (val is List) {
      obj.eventStatus = val.map((e) => EventStatusType.fromJson(e)).toList();
    } else {
      obj.eventStatus = [EventStatusType.fromJson(val)];
    }
  }
  if (json['funder'] != null) {
    final val = json['funder'];
    if (val is List) {
      obj.funder = val.map((e) => OrganizationOrPerson.fromJson(e)).toList();
    } else {
      obj.funder = [OrganizationOrPerson.fromJson(val)];
    }
  }
  if (json['funding'] != null) {
    final val = json['funding'];
    if (val is List) {
      obj.funding = val.map((e) => Grant.fromJson(e)).toList();
    } else {
      obj.funding = [Grant.fromJson(val)];
    }
  }
  if (json['hasParticipationOffer'] != null) {
    final val = json['hasParticipationOffer'];
    if (val is List) {
      obj.hasParticipationOffer = val.map((e) => Offer.fromJson(e)).toList();
    } else {
      obj.hasParticipationOffer = [Offer.fromJson(val)];
    }
  }
  if (json['hasSponsorshipOffer'] != null) {
    final val = json['hasSponsorshipOffer'];
    if (val is List) {
      obj.hasSponsorshipOffer = val.map((e) => Offer.fromJson(e)).toList();
    } else {
      obj.hasSponsorshipOffer = [Offer.fromJson(val)];
    }
  }
  if (json['inLanguage'] != null) {
    final val = json['inLanguage'];
    if (val is List) {
      obj.inLanguage = val.map((e) => LanguageOrText.fromJson(e)).toList();
    } else {
      obj.inLanguage = [LanguageOrText.fromJson(val)];
    }
  }
  if (json['isAccessibleForFree'] != null) {
    final val = json['isAccessibleForFree'];
    if (val is List) {
      obj.isAccessibleForFree = val.map((e) => e is bool ? e : e.toString() == 'true').toList();
    } else {
      obj.isAccessibleForFree = [val is bool ? val : val.toString() == 'true'];
    }
  }
  if (json['keywords'] != null) {
    final val = json['keywords'];
    if (val is List) {
      obj.keywords = val.map((e) => DefinedTermOrTextOrURL.fromJson(e)).toList();
    } else {
      obj.keywords = [DefinedTermOrTextOrURL.fromJson(val)];
    }
  }
  if (json['location'] != null) {
    final val = json['location'];
    if (val is List) {
      obj.location = val.map((e) => PlaceOrPostalAddressOrTextOrVirtualLocation.fromJson(e)).toList();
    } else {
      obj.location = [PlaceOrPostalAddressOrTextOrVirtualLocation.fromJson(val)];
    }
  }
  if (json['maximumAttendeeCapacity'] != null) {
    final val = json['maximumAttendeeCapacity'];
    if (val is List) {
      obj.maximumAttendeeCapacity = val.map((e) => e is num ? e : num.tryParse(e.toString()) ?? 0).toList();
    } else {
      obj.maximumAttendeeCapacity = [val is num ? val : num.tryParse(val.toString()) ?? 0];
    }
  }
  if (json['maximumPhysicalAttendeeCapacity'] != null) {
    final val = json['maximumPhysicalAttendeeCapacity'];
    if (val is List) {
      obj.maximumPhysicalAttendeeCapacity = val.map((e) => e is num ? e : num.tryParse(e.toString()) ?? 0).toList();
    } else {
      obj.maximumPhysicalAttendeeCapacity = [val is num ? val : num.tryParse(val.toString()) ?? 0];
    }
  }
  if (json['maximumVirtualAttendeeCapacity'] != null) {
    final val = json['maximumVirtualAttendeeCapacity'];
    if (val is List) {
      obj.maximumVirtualAttendeeCapacity = val.map((e) => e is num ? e : num.tryParse(e.toString()) ?? 0).toList();
    } else {
      obj.maximumVirtualAttendeeCapacity = [val is num ? val : num.tryParse(val.toString()) ?? 0];
    }
  }
  if (json['offers'] != null) {
    final val = json['offers'];
    if (val is List) {
      obj.offers = val.map((e) => DemandOrOffer.fromJson(e)).toList();
    } else {
      obj.offers = [DemandOrOffer.fromJson(val)];
    }
  }
  if (json['organizer'] != null) {
    final val = json['organizer'];
    if (val is List) {
      obj.organizer = val.map((e) => OrganizationOrPerson.fromJson(e)).toList();
    } else {
      obj.organizer = [OrganizationOrPerson.fromJson(val)];
    }
  }
  if (json['performer'] != null) {
    final val = json['performer'];
    if (val is List) {
      obj.performer = val.map((e) => OrganizationOrPerson.fromJson(e)).toList();
    } else {
      obj.performer = [OrganizationOrPerson.fromJson(val)];
    }
  }
  if (json['performers'] != null) {
    final val = json['performers'];
    if (val is List) {
      obj.performers = val.map((e) => OrganizationOrPerson.fromJson(e)).toList();
    } else {
      obj.performers = [OrganizationOrPerson.fromJson(val)];
    }
  }
  if (json['previousStartDate'] != null) {
    final val = json['previousStartDate'];
    if (val is List) {
      obj.previousStartDate = val.map((e) => DateOrSchemaDateTime.fromJson(e)).toList();
    } else {
      obj.previousStartDate = [DateOrSchemaDateTime.fromJson(val)];
    }
  }
  if (json['recordedIn'] != null) {
    final val = json['recordedIn'];
    if (val is List) {
      obj.recordedIn = val.map((e) => CreativeWork.fromJson(e)).toList();
    } else {
      obj.recordedIn = [CreativeWork.fromJson(val)];
    }
  }
  if (json['remainingAttendeeCapacity'] != null) {
    final val = json['remainingAttendeeCapacity'];
    if (val is List) {
      obj.remainingAttendeeCapacity = val.map((e) => e is num ? e : num.tryParse(e.toString()) ?? 0).toList();
    } else {
      obj.remainingAttendeeCapacity = [val is num ? val : num.tryParse(val.toString()) ?? 0];
    }
  }
  if (json['review'] != null) {
    final val = json['review'];
    if (val is List) {
      obj.review = val.map((e) => Review.fromJson(e)).toList();
    } else {
      obj.review = [Review.fromJson(val)];
    }
  }
  if (json['sponsor'] != null) {
    final val = json['sponsor'];
    if (val is List) {
      obj.sponsor = val.map((e) => OrganizationOrPerson.fromJson(e)).toList();
    } else {
      obj.sponsor = [OrganizationOrPerson.fromJson(val)];
    }
  }
  if (json['startDate'] != null) {
    final val = json['startDate'];
    if (val is List) {
      obj.startDate = val.map((e) => DateOrSchemaDateTime.fromJson(e)).toList();
    } else {
      obj.startDate = [DateOrSchemaDateTime.fromJson(val)];
    }
  }
  if (json['subEvent'] != null) {
    final val = json['subEvent'];
    if (val is List) {
      obj.subEvent = val.map((e) => Event.fromJson(e)).toList();
    } else {
      obj.subEvent = [Event.fromJson(val)];
    }
  }
  if (json['subEvents'] != null) {
    final val = json['subEvents'];
    if (val is List) {
      obj.subEvents = val.map((e) => Event.fromJson(e)).toList();
    } else {
      obj.subEvents = [Event.fromJson(val)];
    }
  }
  if (json['superEvent'] != null) {
    final val = json['superEvent'];
    if (val is List) {
      obj.superEvent = val.map((e) => Event.fromJson(e)).toList();
    } else {
      obj.superEvent = [Event.fromJson(val)];
    }
  }
  if (json['translator'] != null) {
    final val = json['translator'];
    if (val is List) {
      obj.translator = val.map((e) => OrganizationOrPerson.fromJson(e)).toList();
    } else {
      obj.translator = [OrganizationOrPerson.fromJson(val)];
    }
  }
  if (json['typicalAgeRange'] != null) {
    final val = json['typicalAgeRange'];
    if (val is List) {
      obj.typicalAgeRange = val.map((e) => e.toString()).toList();
    } else {
      obj.typicalAgeRange = [val.toString()];
    }
  }
  if (json['workFeatured'] != null) {
    final val = json['workFeatured'];
    if (val is List) {
      obj.workFeatured = val.map((e) => CreativeWork.fromJson(e)).toList();
    } else {
      obj.workFeatured = [CreativeWork.fromJson(val)];
    }
  }
  if (json['workPerformed'] != null) {
    final val = json['workPerformed'];
    if (val is List) {
      obj.workPerformed = val.map((e) => CreativeWork.fromJson(e)).toList();
    } else {
      obj.workPerformed = [CreativeWork.fromJson(val)];
    }
  }
  if (json['additionalType'] != null) {
    final val = json['additionalType'];
    if (val is List) {
      obj.additionalType = val.map((e) => TextOrURL.fromJson(e)).toList();
    } else {
      obj.additionalType = [TextOrURL.fromJson(val)];
    }
  }
  if (json['alternateName'] != null) {
    final val = json['alternateName'];
    if (val is List) {
      obj.alternateName = val.map((e) => e.toString()).toList();
    } else {
      obj.alternateName = [val.toString()];
    }
  }
  if (json['description'] != null) {
    final val = json['description'];
    if (val is List) {
      obj.description = val.map((e) => TextOrTextObject.fromJson(e)).toList();
    } else {
      obj.description = [TextOrTextObject.fromJson(val)];
    }
  }
  if (json['disambiguatingDescription'] != null) {
    final val = json['disambiguatingDescription'];
    if (val is List) {
      obj.disambiguatingDescription = val.map((e) => e.toString()).toList();
    } else {
      obj.disambiguatingDescription = [val.toString()];
    }
  }
  if (json['identifier'] != null) {
    final val = json['identifier'];
    if (val is List) {
      obj.identifier = val.map((e) => PropertyValueOrTextOrURL.fromJson(e)).toList();
    } else {
      obj.identifier = [PropertyValueOrTextOrURL.fromJson(val)];
    }
  }
  if (json['image'] != null) {
    final val = json['image'];
    if (val is List) {
      obj.image = val.map((e) => ImageObjectOrURL.fromJson(e)).toList();
    } else {
      obj.image = [ImageObjectOrURL.fromJson(val)];
    }
  }
  if (json['mainEntityOfPage'] != null) {
    final val = json['mainEntityOfPage'];
    if (val is List) {
      obj.mainEntityOfPage = val.map((e) => CreativeWorkOrURL.fromJson(e)).toList();
    } else {
      obj.mainEntityOfPage = [CreativeWorkOrURL.fromJson(val)];
    }
  }
  if (json['name'] != null) {
    final val = json['name'];
    if (val is List) {
      obj.name = val.map((e) => e.toString()).toList();
    } else {
      obj.name = [val.toString()];
    }
  }
  if (json['owner'] != null) {
    final val = json['owner'];
    if (val is List) {
      obj.owner = val.map((e) => OrganizationOrPerson.fromJson(e)).toList();
    } else {
      obj.owner = [OrganizationOrPerson.fromJson(val)];
    }
  }
  if (json['potentialAction'] != null) {
    final val = json['potentialAction'];
    if (val is List) {
      obj.potentialAction = val.map((e) => Action.fromJson(e)).toList();
    } else {
      obj.potentialAction = [Action.fromJson(val)];
    }
  }
  if (json['sameAs'] != null) {
    final val = json['sameAs'];
    if (val is List) {
      obj.sameAs = val.map((e) => e.toString()).toList();
    } else {
      obj.sameAs = [val.toString()];
    }
  }
  if (json['subjectOf'] != null) {
    final val = json['subjectOf'];
    if (val is List) {
      obj.subjectOf = val.map((e) => CreativeWorkOrEvent.fromJson(e)).toList();
    } else {
      obj.subjectOf = [CreativeWorkOrEvent.fromJson(val)];
    }
  }
  if (json['url'] != null) {
    final val = json['url'];
    if (val is List) {
      obj.url = val.map((e) => e.toString()).toList();
    } else {
      obj.url = [val.toString()];
    }
  }
  if (json['@id'] != null) obj.id = json['@id'] as String?;
  if (json['@context'] != null) obj.context = json['@context'] as String?;
  return obj;
}