Esempio n. 1
0
        private void ReadKeyValuePair(JsonStringReader keyReader, JsonReaderDirector director, JsonObject result)
        {
            JsonString key = (JsonString)keyReader.Read();

            this._json.ReadWhitespace();

            // Assure colon between key/value
            if (this._json.Read() != 58)
            {
                throw new JsonFormatException("Expected ':' after object key");
            }

            result.Add(key.Value, director.ReadValue());
        }
Esempio n. 2
0
        public override IJsonValue Read()
        {
            JsonReaderDirector director = new JsonReaderDirector(this._json);
            JsonArray          result   = new JsonArray();
            States             state    = States.Start;

            while (state != States.End)
            {
                switch (state)
                {
                case States.Start:
                    switch (this._json.Peek())
                    {
                    case 91:
                        this._json.Read();
                        state = States.ReadOpeningBracket;
                        break;

                    default:
                        throw new JsonFormatException("Expected '[' to start an array");
                    }
                    break;

                case States.ReadOpeningBracket:
                    this._json.ReadWhitespace();
                    switch (this._json.Peek())
                    {
                    case 93:
                        this._json.Read();
                        state = States.End;
                        break;

                    default:
                        result.Add(director.ReadValue());
                        state = States.ReadValue;
                        break;
                    }
                    break;

                case States.ReadValue:
                    switch (this._json.Peek())
                    {
                    case 93:
                        this._json.Read();
                        state = States.End;
                        break;

                    case 44:
                        this._json.Read();
                        result.Add(director.ReadValue());
                        break;

                    default:
                        throw new JsonFormatException("Expected a ',' or ']' after value in array");
                    }
                    break;

                case States.End:
                    break;
                }
            }
            return(result);
        }