/// <summary> /// Serialize to a JSON object /// </summary> public new void SerializeJson(Utf8JsonWriter writer, JsonSerializerOptions options, bool includeStartObject = true) { if (includeStartObject) { writer.WriteStartObject(); } ((Fhir.R4.Models.BackboneElement) this).SerializeJson(writer, options, false); if (!string.IsNullOrEmpty(Type)) { writer.WriteString("type", (string)Type !); } if (_Type != null) { writer.WritePropertyName("_type"); _Type.SerializeJson(writer, options); } if (Period != null) { writer.WritePropertyName("period"); Period.SerializeJson(writer, options); } if ((Actor != null) && (Actor.Count != 0)) { writer.WritePropertyName("actor"); writer.WriteStartArray(); foreach (ConsentProvisionActor valActor in Actor) { valActor.SerializeJson(writer, options, true); } writer.WriteEndArray(); } if ((Action != null) && (Action.Count != 0)) { writer.WritePropertyName("action"); writer.WriteStartArray(); foreach (CodeableConcept valAction in Action) { valAction.SerializeJson(writer, options, true); } writer.WriteEndArray(); } if ((SecurityLabel != null) && (SecurityLabel.Count != 0)) { writer.WritePropertyName("securityLabel"); writer.WriteStartArray(); foreach (Coding valSecurityLabel in SecurityLabel) { valSecurityLabel.SerializeJson(writer, options, true); } writer.WriteEndArray(); } if ((Purpose != null) && (Purpose.Count != 0)) { writer.WritePropertyName("purpose"); writer.WriteStartArray(); foreach (Coding valPurpose in Purpose) { valPurpose.SerializeJson(writer, options, true); } writer.WriteEndArray(); } if ((Class != null) && (Class.Count != 0)) { writer.WritePropertyName("class"); writer.WriteStartArray(); foreach (Coding valClass in Class) { valClass.SerializeJson(writer, options, true); } writer.WriteEndArray(); } if ((Code != null) && (Code.Count != 0)) { writer.WritePropertyName("code"); writer.WriteStartArray(); foreach (CodeableConcept valCode in Code) { valCode.SerializeJson(writer, options, true); } writer.WriteEndArray(); } if (DataPeriod != null) { writer.WritePropertyName("dataPeriod"); DataPeriod.SerializeJson(writer, options); } if ((Data != null) && (Data.Count != 0)) { writer.WritePropertyName("data"); writer.WriteStartArray(); foreach (ConsentProvisionData valData in Data) { valData.SerializeJson(writer, options, true); } writer.WriteEndArray(); } if ((Provision != null) && (Provision.Count != 0)) { writer.WritePropertyName("provision"); writer.WriteStartArray(); foreach (ConsentProvision valProvision in Provision) { valProvision.SerializeJson(writer, options, true); } writer.WriteEndArray(); } if (includeStartObject) { writer.WriteEndObject(); } }