Ejemplo n.º 1
0
        private static JsonToken[] GetTokensFromNode(IJsonNavigatorNode node, IJsonNavigator navigator, bool performCorrectnessCheck)
        {
            switch (navigator.GetNodeType(node))
            {
            case JsonNodeType.Null:
                return(new JsonToken[] { JsonToken.Null() });

            case JsonNodeType.False:
                return(new JsonToken[] { JsonToken.Boolean(false) });

            case JsonNodeType.True:
                return(new JsonToken[] { JsonToken.Boolean(true) });

            case JsonNodeType.Number64:
                return(new JsonToken[] { JsonToken.Number(navigator.GetNumber64Value(node)) });

            case JsonNodeType.String:
                return(new JsonToken[] { JsonToken.String(navigator.GetStringValue(node)) });

            case JsonNodeType.Array:
                return(JsonNavigatorTests.GetTokensFromArrayNode(node, navigator, performCorrectnessCheck));

            case JsonNodeType.Object:
                return(JsonNavigatorTests.GetTokensFromObjectNode(node, navigator, performCorrectnessCheck));

            case JsonNodeType.FieldName:
                return(new JsonToken[] { JsonToken.FieldName(navigator.GetStringValue(node)) });

            case JsonNodeType.Int8:
                return(new JsonToken[] { JsonToken.Int8(navigator.GetInt8Value(node)) });

            case JsonNodeType.Int16:
                return(new JsonToken[] { JsonToken.Int16(navigator.GetInt16Value(node)) });

            case JsonNodeType.Int32:
                return(new JsonToken[] { JsonToken.Int32(navigator.GetInt32Value(node)) });

            case JsonNodeType.Int64:
                return(new JsonToken[] { JsonToken.Int64(navigator.GetInt64Value(node)) });

            case JsonNodeType.UInt32:
                return(new JsonToken[] { JsonToken.UInt32(navigator.GetUInt32Value(node)) });

            case JsonNodeType.Float32:
                return(new JsonToken[] { JsonToken.Float32(navigator.GetFloat32Value(node)) });

            case JsonNodeType.Float64:
                return(new JsonToken[] { JsonToken.Float64(navigator.GetFloat64Value(node)) });

            case JsonNodeType.Guid:
                return(new JsonToken[] { JsonToken.Guid(navigator.GetGuidValue(node)) });

            case JsonNodeType.Binary:
                return(new JsonToken[] { JsonToken.Binary(navigator.GetBinaryValue(node)) });

            default:
                throw new InvalidOperationException();
            }
        }
Ejemplo n.º 2
0
        private static JsonToken[] GetTokensWithReader(IJsonReader jsonReader)
        {
            List <JsonToken> tokens = new List <JsonToken>();

            while (jsonReader.Read())
            {
                JsonToken token;
                switch (jsonReader.CurrentTokenType)
                {
                case JsonTokenType.NotStarted:
                    throw new InvalidOperationException();

                case JsonTokenType.BeginArray:
                    token = JsonToken.ArrayStart();
                    break;

                case JsonTokenType.EndArray:
                    token = JsonToken.ArrayEnd();
                    break;

                case JsonTokenType.BeginObject:
                    token = JsonToken.ObjectStart();
                    break;

                case JsonTokenType.EndObject:
                    token = JsonToken.ObjectEnd();
                    break;

                case JsonTokenType.String:
                    token = JsonToken.String(jsonReader.GetStringValue());
                    break;

                case JsonTokenType.Number:
                    token = JsonToken.Number(jsonReader.GetNumberValue());
                    break;

                case JsonTokenType.True:
                    token = JsonToken.Boolean(true);
                    break;

                case JsonTokenType.False:
                    token = JsonToken.Boolean(false);
                    break;

                case JsonTokenType.Null:
                    token = JsonToken.Null();
                    break;

                case JsonTokenType.FieldName:
                    token = JsonToken.FieldName(jsonReader.GetStringValue());
                    break;

                case JsonTokenType.Int8:
                    token = JsonToken.Int8(jsonReader.GetInt8Value());
                    break;

                case JsonTokenType.Int16:
                    token = JsonToken.Int16(jsonReader.GetInt16Value());
                    break;

                case JsonTokenType.Int32:
                    token = JsonToken.Int32(jsonReader.GetInt32Value());
                    break;

                case JsonTokenType.Int64:
                    token = JsonToken.Int64(jsonReader.GetInt64Value());
                    break;

                case JsonTokenType.UInt32:
                    token = JsonToken.UInt32(jsonReader.GetUInt32Value());
                    break;

                case JsonTokenType.Float32:
                    token = JsonToken.Float32(jsonReader.GetFloat32Value());
                    break;

                case JsonTokenType.Float64:
                    token = JsonToken.Float64(jsonReader.GetFloat64Value());
                    break;

                case JsonTokenType.Guid:
                    token = JsonToken.Guid(jsonReader.GetGuidValue());
                    break;

                case JsonTokenType.Binary:
                    token = JsonToken.Binary(jsonReader.GetBinaryValue());
                    break;

                default:
                    throw new ArgumentException($"Unknown {nameof(JsonTokenType)}: {jsonReader.CurrentTokenType}");
                }

                tokens.Add(token);
            }

            return(tokens.ToArray());
        }