Example #1
0
        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;
            }
        }
Example #2
0
        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;
            }
        }