コード例 #1
0
                private static IntegerNode ParseIntegerNode(
                    IJsonTextReaderPrivateImplementation jsonTextReader,
                    JsonTokenType jsonTokenType)
                {
                    ReadOnlyMemory <byte> bufferedRawJsonToken = jsonTextReader.GetBufferedJsonToken().Memory;
                    IntegerNode           integerNode          = jsonTokenType switch
                    {
                        JsonTokenType.Int8 => Int8Node.Create(bufferedRawJsonToken),
                        JsonTokenType.Int16 => Int16Node.Create(bufferedRawJsonToken),
                        JsonTokenType.Int32 => Int32Node.Create(bufferedRawJsonToken),
                        JsonTokenType.Int64 => Int64Node.Create(bufferedRawJsonToken),
                        JsonTokenType.UInt32 => UInt32Node.Create(bufferedRawJsonToken),
                        _ => throw new ArgumentException($"Unknown {nameof(JsonTokenType)}: {jsonTokenType}"),
                    };

                    // consume the integer from the reader
                    jsonTextReader.Read();

                    return(integerNode);
                }
コード例 #2
0
                private static IntegerNode ParseIntegerNode(IJsonReader jsonTextReader, JsonTokenType jsonTokenType)
                {
                    if (!jsonTextReader.TryGetBufferedRawJsonToken(out ReadOnlyMemory <byte> bufferedRawJsonToken))
                    {
                        throw new InvalidOperationException("Failed to get the buffered raw json token.");
                    }

                    IntegerNode integerNode;

                    switch (jsonTokenType)
                    {
                    case JsonTokenType.Int8:
                        integerNode = Int8Node.Create(bufferedRawJsonToken);
                        break;

                    case JsonTokenType.Int16:
                        integerNode = Int16Node.Create(bufferedRawJsonToken);
                        break;

                    case JsonTokenType.Int32:
                        integerNode = Int32Node.Create(bufferedRawJsonToken);
                        break;

                    case JsonTokenType.Int64:
                        integerNode = Int64Node.Create(bufferedRawJsonToken);
                        break;

                    case JsonTokenType.UInt32:
                        integerNode = UInt32Node.Create(bufferedRawJsonToken);
                        break;

                    default:
                        throw new ArgumentException($"Unknown {nameof(JsonTokenType)}: {jsonTokenType}");
                    }

                    // consume the integer from the reader
                    jsonTextReader.Read();

                    return(integerNode);
                }
                private static IntegerNode ParseIntegerNode(IJsonReader jsonTextReader, JsonTokenType jsonTokenType)
                {
                    ReadOnlyMemory <byte> bytes = jsonTextReader.GetBufferedRawJsonToken();

                    IntegerNode integerNode;

                    switch (jsonTokenType)
                    {
                    case JsonTokenType.Int8:
                        integerNode = Int8Node.Create(bytes);
                        break;

                    case JsonTokenType.Int16:
                        integerNode = Int16Node.Create(bytes);
                        break;

                    case JsonTokenType.Int32:
                        integerNode = Int32Node.Create(bytes);
                        break;

                    case JsonTokenType.Int64:
                        integerNode = Int64Node.Create(bytes);
                        break;

                    case JsonTokenType.UInt32:
                        integerNode = UInt32Node.Create(bytes);
                        break;

                    default:
                        throw new ArgumentException($"Unknown {nameof(JsonTokenType)}: {jsonTokenType}");
                    }

                    // consume the integer from the reader
                    jsonTextReader.Read();

                    return(integerNode);
                }