I have some json in the following format:
{
"daySchedules": {
"500000004061582000": {
"scheduleName": "Friday-Sunday",
"services": [
{
"name": "Lunch",
"hours": {
"startTime": "12:00:00.000",
"endTime": "16:00:00.000"
},
"overnight": false
},
{
"name": "Dinner",
"hours": {
"startTime": "17:00:00.000",
"endTime": "23:00:00.000"
},
"overnight": false
}
],
"openTime": "12:00:00.000",
"closeTime": "23:00:00.000"
},
"500000004061559163": {
"scheduleName": "Tuesday-Thursday",
"services": [
{
"name": "Breakfast",
"hours": {
"startTime": "04:00:00.000",
"endTime": "11:00:00.000"
},
"overnight": false
},
{
"name": "Lunch",
"hours": {
"startTime": "12:00:00.000",
"endTime": "16:00:00.000"
},
"overnight": false
},
{
"name": "Dinner",
"hours": {
"startTime": "17:00:00.000",
"endTime": "20:00:00.000"
},
"overnight": false
}
],
"openTime": "04:00:00.000",
"closeTime": "20:00:00.000"
}
},
"weekSchedule": {
"monday": null,
"tuesday": "500000004061559163",
"wednesday": "500000004061559163",
"thursday": "500000004061559163",
"friday": "500000004061582000",
"saturday": "500000004061582000",
"sunday": "500000004061582000"
}
}
The attributes in the json 500000004061582000 and 500000004061559163 is dynamic and determined by what's returned in the weekSchedule.
I wish to create the following serializers:
class ScheduleForDaySerializer(serializers.Serializer):
schedule_name = serializers.CharField()
services = serializers.ListField()
open_time = serializers.CharField()
close_time = serializers.CharField()
class WeekScheduleSerializer(serializers.Serializer):
monday = serializers.CharField(allow_null=True)
tuesday = serializers.CharField(allow_null=True)
wednesday = serializers.CharField(allow_null=True)
thursday = serializers.CharField(allow_null=True)
friday = serializers.CharField(allow_null=True)
saturday = serializers.CharField(allow_null=True)
sunday = serializers.CharField(allow_null=True)
class DaySchedulesSerializer(serializers.Serializer):
# what comes here?
class SchedulesSerializer(serializers.Serializer):
day_schedules = DaySchedulesSerializer()
week_schedule = WeekScheduleSerializer()
I'm struggling to determine how to serialize the attributes for that daySchedules json object since the key attributes are dynamic and not necessarily the same each time. Ideally I want to explicitly list out what each attribute type is.
After creating the serializer I want to do the following:
serializer = SchedulesSerializer(data=data) # data is the json object shown above
serializer.is_valid()
response = serializer.data
# do something with the response