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);
699CheckExpectedType(JsonTokenType.String, row.TokenType);
734CheckExpectedType(JsonTokenType.String, row.TokenType);
803case JsonTokenType.StartObject:
807case JsonTokenType.StartArray:
811case JsonTokenType.String:
814case JsonTokenType.Number:
817case JsonTokenType.True:
820case JsonTokenType.False:
823case JsonTokenType.Null:
842case JsonTokenType.String:
845case JsonTokenType.Number:
848case JsonTokenType.True:
851case JsonTokenType.False:
854case JsonTokenType.Null:
857case JsonTokenType.StartObject:
860case JsonTokenType.EndObject:
863case JsonTokenType.StartArray:
866case JsonTokenType.EndArray:
869case JsonTokenType.PropertyName:
880Debug.Assert(row.TokenType == JsonTokenType.String || row.TokenType == JsonTokenType.PropertyName);
911Debug.Assert(row.TokenType == JsonTokenType.PropertyName);
961JsonTokenType tokenType = reader.TokenType;
968if (tokenType == JsonTokenType.StartObject)
982else if (tokenType == JsonTokenType.EndObject)
984int rowIndex = database.FindIndexOfFirstUnsetSizeOrLength(JsonTokenType.StartObject);
999else if (tokenType == JsonTokenType.StartArray)
1013else if (tokenType == JsonTokenType.EndArray)
1015int rowIndex = database.FindIndexOfFirstUnsetSizeOrLength(JsonTokenType.StartArray);
1045else if (tokenType == JsonTokenType.PropertyName)
1065Debug.Assert(tokenType >= JsonTokenType.String && tokenType <= JsonTokenType.Null);
1074if (tokenType == JsonTokenType.String)
1107private 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)