System\Text\Json\Document\JsonDocument.cs (63)
111internal JsonTokenType GetJsonTokenType(int index)
124Debug.Assert(!isPropertyName || row.TokenType is JsonTokenType.PropertyName);
135CheckExpectedType(JsonTokenType.StartArray, row.TokenType);
146CheckExpectedType(JsonTokenType.StartObject, row.TokenType);
157CheckExpectedType(JsonTokenType.StartArray, row.TokenType);
233if (includeQuotes && row.TokenType == JsonTokenType.String)
255Debug.Assert(row.TokenType == JsonTokenType.PropertyName);
268if (row.TokenType == JsonTokenType.String)
282internal string? GetString(int index, JsonTokenType expectedType)
288JsonTokenType tokenType = row.TokenType;
290if (tokenType == JsonTokenType.Null)
347isPropertyName ? JsonTokenType.PropertyName : JsonTokenType.String,
382return GetString(index - DbRow.Size, JsonTokenType.PropertyName)!;
390Debug.Assert(row.TokenType is JsonTokenType.PropertyName);
401CheckExpectedType(JsonTokenType.String, row.TokenType);
422CheckExpectedType(JsonTokenType.Number, row.TokenType);
444CheckExpectedType(JsonTokenType.Number, row.TokenType);
466CheckExpectedType(JsonTokenType.Number, row.TokenType);
488CheckExpectedType(JsonTokenType.Number, row.TokenType);
510CheckExpectedType(JsonTokenType.Number, row.TokenType);
532CheckExpectedType(JsonTokenType.Number, row.TokenType);
554CheckExpectedType(JsonTokenType.Number, row.TokenType);
576CheckExpectedType(JsonTokenType.Number, row.TokenType);
598CheckExpectedType(JsonTokenType.Number, row.TokenType);
620CheckExpectedType(JsonTokenType.Number, row.TokenType);
642CheckExpectedType(JsonTokenType.Number, row.TokenType);
664CheckExpectedType(JsonTokenType.String, row.TokenType);
678CheckExpectedType(JsonTokenType.String, row.TokenType);
692CheckExpectedType(JsonTokenType.String, row.TokenType);
761case JsonTokenType.StartObject:
765case JsonTokenType.StartArray:
769case JsonTokenType.String:
772case JsonTokenType.Number:
775case JsonTokenType.True:
778case JsonTokenType.False:
781case JsonTokenType.Null:
800case JsonTokenType.String:
803case JsonTokenType.Number:
806case JsonTokenType.True:
809case JsonTokenType.False:
812case JsonTokenType.Null:
815case JsonTokenType.StartObject:
818case JsonTokenType.EndObject:
821case JsonTokenType.StartArray:
824case JsonTokenType.EndArray:
827case JsonTokenType.PropertyName:
838Debug.Assert(row.TokenType == JsonTokenType.String || row.TokenType == JsonTokenType.PropertyName);
869Debug.Assert(row.TokenType == JsonTokenType.PropertyName);
919JsonTokenType tokenType = reader.TokenType;
926if (tokenType == JsonTokenType.StartObject)
940else if (tokenType == JsonTokenType.EndObject)
942int rowIndex = database.FindIndexOfFirstUnsetSizeOrLength(JsonTokenType.StartObject);
957else if (tokenType == JsonTokenType.StartArray)
971else if (tokenType == JsonTokenType.EndArray)
973int rowIndex = database.FindIndexOfFirstUnsetSizeOrLength(JsonTokenType.StartArray);
1003else if (tokenType == JsonTokenType.PropertyName)
1023Debug.Assert(tokenType >= JsonTokenType.String && tokenType <= JsonTokenType.Null);
1032if (tokenType == JsonTokenType.String)
1145private static void CheckExpectedType(JsonTokenType expected, JsonTokenType actual)
System\Text\Json\Reader\Utf8JsonReader.cs (106)
35private JsonTokenType _tokenType;
36private JsonTokenType _previousTokenType;
110if (TokenType is JsonTokenType.StartArray or JsonTokenType.StartObject)
124public readonly JsonTokenType TokenType => _tokenType;
284if (_isFinalBlock && TokenType is JsonTokenType.None && !_readerOptions.AllowMultipleValues)
303/// When <see cref="TokenType"/> is <see cref="JsonTokenType.PropertyName" />, the reader first moves to the property value.
304/// When <see cref="TokenType"/> (originally, or after advancing) is <see cref="JsonTokenType.StartObject" /> or
305/// <see cref="JsonTokenType.StartArray" />, the reader advances to the matching
306/// <see cref="JsonTokenType.EndObject" /> or <see cref="JsonTokenType.EndArray" />.
326if (TokenType is JsonTokenType.PropertyName)
334if (TokenType is JsonTokenType.StartObject or JsonTokenType.StartArray)
362/// When <see cref="TokenType"/> is <see cref="JsonTokenType.PropertyName" />, the reader first moves to the property value.
363/// When <see cref="TokenType"/> (originally, or after advancing) is <see cref="JsonTokenType.StartObject" /> or
364/// <see cref="JsonTokenType.StartArray" />, the reader advances to the matching
365/// <see cref="JsonTokenType.EndObject" /> or <see cref="JsonTokenType.EndArray" />.
403if (TokenType is JsonTokenType.PropertyName)
412if (TokenType is not (JsonTokenType.StartObject or JsonTokenType.StartArray))
440/// (i.e. other than <see cref="JsonTokenType.String"/> or <see cref="JsonTokenType.PropertyName"/>).
470/// (i.e. other than <see cref="JsonTokenType.String"/> or <see cref="JsonTokenType.PropertyName"/>).
511/// (i.e. other than <see cref="JsonTokenType.String"/> or <see cref="JsonTokenType.PropertyName"/>).
690private static bool IsTokenTypeString(JsonTokenType tokenType)
692return tokenType == JsonTokenType.PropertyName || tokenType == JsonTokenType.String;
749_tokenType = JsonTokenType.StartObject;
767_tokenType = JsonTokenType.EndObject;
783_tokenType = JsonTokenType.StartArray;
801_tokenType = JsonTokenType.EndArray;
844if (_tokenType == JsonTokenType.None)
855if (_tokenType == JsonTokenType.StartObject)
876_tokenType = JsonTokenType.StartObject;
883else if (_tokenType == JsonTokenType.StartArray)
895else if (_tokenType == JsonTokenType.PropertyName)
928if (_readerOptions.CommentHandling == JsonCommentHandling.Allow && _tokenType == JsonTokenType.Comment)
933if (_tokenType is not JsonTokenType.EndArray and not JsonTokenType.EndObject)
965_tokenType = JsonTokenType.StartObject;
975_tokenType = JsonTokenType.StartArray;
992_tokenType = JsonTokenType.Number;
1001_isNotPrimitive = _tokenType is JsonTokenType.StartObject or JsonTokenType.StartArray;
1066return ConsumeLiteral(JsonConstants.FalseValue, JsonTokenType.False);
1070return ConsumeLiteral(JsonConstants.TrueValue, JsonTokenType.True);
1074return ConsumeLiteral(JsonConstants.NullValue, JsonTokenType.Null);
1096if (_isNotPrimitive && IsLastSpan && _tokenType != JsonTokenType.EndArray && _tokenType != JsonTokenType.EndObject)
1133private bool ConsumeLiteral(ReadOnlySpan<byte> literal, JsonTokenType tokenType)
1212_tokenType = JsonTokenType.Number;
1275_tokenType = JsonTokenType.PropertyName;
1301_tokenType = JsonTokenType.String;
1400_tokenType = JsonTokenType.String;
1701JsonTokenType prevTokenType = _tokenType;
1733if (_tokenType == JsonTokenType.Comment)
1841Debug.Assert(_tokenType == JsonTokenType.Comment);
1845_tokenType = _inObject ? JsonTokenType.StartObject : JsonTokenType.StartArray;
1852Debug.Assert(_tokenType != JsonTokenType.Comment);
1872if (_bitStack.CurrentDepth == 0 && _tokenType != JsonTokenType.None)
1889if (_previousTokenType <= JsonTokenType.StartObject || _previousTokenType == JsonTokenType.StartArray || _trailingCommaBeforeComment)
1991else if (_tokenType == JsonTokenType.None)
2002else if (_tokenType == JsonTokenType.StartObject)
2017_tokenType = JsonTokenType.StartObject;
2024else if (_tokenType == JsonTokenType.StartArray)
2033else if (_tokenType == JsonTokenType.PropertyName)
2043Debug.Assert(_tokenType is JsonTokenType.EndArray or JsonTokenType.EndObject);
2164if (_tokenType == JsonTokenType.StartObject)
2184_tokenType = JsonTokenType.StartObject;
2192else if (_tokenType == JsonTokenType.StartArray)
2207else if (_tokenType == JsonTokenType.PropertyName)
2530if (_tokenType != JsonTokenType.Comment)
2534_tokenType = JsonTokenType.Comment;
2548if (_tokenType != JsonTokenType.Comment)
2552_tokenType = JsonTokenType.Comment;
2565JsonTokenType.Comment => nameof(JsonTokenType.Comment),
2566JsonTokenType.EndArray => nameof(JsonTokenType.EndArray),
2567JsonTokenType.EndObject => nameof(JsonTokenType.EndObject),
2568JsonTokenType.False => nameof(JsonTokenType.False),
2569JsonTokenType.None => nameof(JsonTokenType.None),
2570JsonTokenType.Null => nameof(JsonTokenType.Null),
2571JsonTokenType.Number => nameof(JsonTokenType.Number),
2572JsonTokenType.PropertyName => nameof(JsonTokenType.PropertyName),
2573JsonTokenType.StartArray => nameof(JsonTokenType.StartArray),
2574JsonTokenType.StartObject => nameof(JsonTokenType.StartObject),
2575JsonTokenType.String => nameof(JsonTokenType.String),
2576JsonTokenType.True => nameof(JsonTokenType.True),
System\Text\Json\ThrowHelper.cs (18)
263public static InvalidOperationException GetInvalidOperationException_ExpectedArray(JsonTokenType tokenType)
268public static InvalidOperationException GetInvalidOperationException_ExpectedObject(JsonTokenType tokenType)
274public static void ThrowInvalidOperationException_ExpectedNumber(JsonTokenType tokenType)
280public static void ThrowInvalidOperationException_ExpectedBoolean(JsonTokenType tokenType)
286public static void ThrowInvalidOperationException_ExpectedString(JsonTokenType tokenType)
292public static void ThrowInvalidOperationException_ExpectedPropertyName(JsonTokenType tokenType)
298public static void ThrowInvalidOperationException_ExpectedStringComparison(JsonTokenType tokenType)
304public static void ThrowInvalidOperationException_ExpectedComment(JsonTokenType tokenType)
335private static InvalidOperationException GetInvalidOperationException(string message, JsonTokenType tokenType)
340private static InvalidOperationException GetInvalidOperationException(JsonTokenType tokenType)
347JsonTokenType expectedType,
348JsonTokenType actualType)
518public static void ThrowInvalidOperationException(ExceptionResource resource, int currentDepth, int maxDepth, byte token, JsonTokenType tokenType)
593public static InvalidOperationException GetInvalidOperationException(ExceptionResource resource, int currentDepth, int maxDepth, byte token, JsonTokenType tokenType)
609private static string GetResourceString(ExceptionResource resource, int currentDepth, int maxDepth, byte token, JsonTokenType tokenType)
616message = (tokenType == JsonTokenType.PropertyName) ?
633message = (tokenType == JsonTokenType.PropertyName) ?
742public static void ThrowInvalidOperationException_ExpectedChar(JsonTokenType tokenType)