internal void WriteTo(Utf8JsonWriter writer) { switch (Type) { case JwtTokenType.Object: ((JwtObject)Value !).WriteObjectTo(writer); break; case JwtTokenType.Array: ((JwtArray)Value !).WriteTo(writer); break; case JwtTokenType.Integer: writer.WriteNumberValue((long)Value !); break; case JwtTokenType.Float: writer.WriteNumberValue((double)Value !); break; case JwtTokenType.String: writer.WriteStringValue((string)Value !); break; case JwtTokenType.Utf8String: writer.WriteStringValue((byte[])Value !); break; case JwtTokenType.Boolean: writer.WriteBooleanValue((bool)Value !); break; case JwtTokenType.Null: writer.WriteNullValue(); break; default: ThrowHelper.ThrowInvalidOperationException_NotSupportedJsonType(Type); break; } }
internal void WriteTo(Utf8JsonWriter writer) { switch (Type) { case JwtValueKind.String: writer.WriteString(Name, (string)Value); break; case JwtValueKind.JsonEncodedString: writer.WriteString(Name, (JsonEncodedText)Value); break; case JwtValueKind.Int32: writer.WriteNumber(Name, (int)Value); break; case JwtValueKind.Int64: writer.WriteNumber(Name, (long)Value); break; case JwtValueKind.UInt32: writer.WriteNumber(Name, (uint)Value); break; case JwtValueKind.UInt64: writer.WriteNumber(Name, (ulong)Value); break; case JwtValueKind.Float: writer.WriteNumber(Name, (float)Value); break; case JwtValueKind.Double: writer.WriteNumber(Name, (double)Value); break; case JwtValueKind.Object: if (Value is IJwtSerializable serializable) { writer.WritePropertyName(Name); serializable.WriteTo(writer); } else { writer.WritePropertyName(Name); JsonSerializer.Serialize(writer, Value, JsonSerializationBehavior.SerializerOptions); } break; case JwtValueKind.Array: writer.WritePropertyName(Name); JsonSerializer.Serialize(writer, Value, JsonSerializationBehavior.SerializerOptions); break; case JwtValueKind.True: writer.WriteBoolean(Name, true); break; case JwtValueKind.False: writer.WriteBoolean(Name, false); break; case JwtValueKind.Null: writer.WriteNull(Name); break; default: ThrowHelper.ThrowInvalidOperationException_NotSupportedJsonType(Type); break; } }