/// <summary> /// Parses out a JSON AST node with a jsonTextReader. /// </summary> /// <param name="jsonTextReader">The reader to use as a lexer / tokenizer</param> /// <returns>JSON AST node (type determined by the reader)</returns> private static JsonTextNode ParseNode(IJsonReader jsonTextReader) { JsonTextNode node; switch (jsonTextReader.CurrentTokenType) { case JsonTokenType.BeginArray: node = JsonTextParser.ParseArrayNode(jsonTextReader); break; case JsonTokenType.BeginObject: node = JsonTextParser.ParseObjectNode(jsonTextReader); break; case JsonTokenType.String: node = JsonTextParser.ParseStringNode(jsonTextReader); break; case JsonTokenType.Number: node = JsonTextParser.ParseNumberNode(jsonTextReader); break; case JsonTokenType.True: node = JsonTextParser.ParseTrueNode(jsonTextReader); break; case JsonTokenType.False: node = JsonTextParser.ParseFalseNode(jsonTextReader); break; case JsonTokenType.Null: node = JsonTextParser.ParseNullNode(jsonTextReader); break; default: throw new JsonInvalidTokenException(); } return node; }
/// <summary> /// Parses out a JSON AST node with a jsonTextReader. /// </summary> /// <param name="jsonTextReader">The reader to use as a lexer / tokenizer</param> /// <returns>JSON AST node (type determined by the reader)</returns> private static JsonTextNode ParseNode(IJsonReader jsonTextReader) { JsonTextNode node; switch (jsonTextReader.CurrentTokenType) { case JsonTokenType.BeginArray: node = JsonTextParser.ParseArrayNode(jsonTextReader); break; case JsonTokenType.BeginObject: node = JsonTextParser.ParseObjectNode(jsonTextReader); break; case JsonTokenType.String: node = JsonTextParser.ParseStringNode(jsonTextReader); break; case JsonTokenType.Number: node = JsonTextParser.ParseNumberNode(jsonTextReader); break; case JsonTokenType.Float32: case JsonTokenType.Float64: node = JsonTextParser.ParseFloatNode(jsonTextReader, jsonTextReader.CurrentTokenType); break; case JsonTokenType.Int8: case JsonTokenType.Int16: case JsonTokenType.Int32: case JsonTokenType.Int64: case JsonTokenType.UInt32: node = JsonTextParser.ParseIntegerNode(jsonTextReader, jsonTextReader.CurrentTokenType); break; case JsonTokenType.True: node = JsonTextParser.ParseTrueNode(jsonTextReader); break; case JsonTokenType.False: node = JsonTextParser.ParseFalseNode(jsonTextReader); break; case JsonTokenType.Null: node = JsonTextParser.ParseNullNode(jsonTextReader); break; case JsonTokenType.Guid: node = JsonTextParser.ParseGuidNode(jsonTextReader); break; case JsonTokenType.Binary: node = JsonTextParser.ParseBinaryNode(jsonTextReader); break; default: throw new JsonInvalidTokenException(); } return(node); }