Esempio n. 1
0
        public JSONObject parseObject(JSONTokens tokens)
        {
            JSONObject obj = new JSONObject();
            Token      value;
            Token      temp;

            while (tokens.hasMore())
            {
                value = tokens.step();
                if (value.Type == TokenType.ClosingCurlyBracket)
                {
                    break;
                }
                while (tokens.hasMore() && value.Type == TokenType.String)
                {
                    temp = tokens.step();
                    if (temp.Type == TokenType.String)
                    {
                        obj.value.Add(value.Value, new JSONString(temp.Value));
                        break;
                    }
                    else if (temp.Type == TokenType.Number)
                    {
                        obj.value.Add(value.Value, new JSONNumber(Double.Parse(temp.Value)));
                        break;
                    }
                    else if (temp.Type == TokenType.Null)
                    {
                        obj.value.Add(value.Value, new JSONNull());
                        break;
                    }
                    else if (temp.Type == TokenType.True)
                    {
                        obj.value.Add(value.Value, new JSONTrue());
                        break;
                    }
                    else if (temp.Type == TokenType.False)
                    {
                        obj.value.Add(value.Value, new JSONFalse());
                        break;
                    }
                    else if (temp.Type == TokenType.OpeningBracket)
                    {
                        obj.value.Add(value.Value, parseArray(tokens));
                        break;
                    }
                    else if (temp.Type == TokenType.OpeningCurlyBracket)
                    {
                        obj.value.Add(value.Value, parseObject(tokens));
                        break;
                    }
                }
            }

            return(obj);
        }
Esempio n. 2
0
        public void parse(List <Token> tkns)
        {
            JSONTokens tokens = new JSONTokens(tkns);
            Token      key    = null;
            Token      value  = null;

            while (tokens.hasMore())
            {
                key = tokens.step();
                // Console.WriteLine("Key: " + key.Value);
                if (key.Type == TokenType.String)
                {
                    value = tokens.step(3);
                    // Console.WriteLine("value: " + value.Value);
                    if (value.Type == TokenType.String)
                    {
                        addKeyValue(key.Value, new JSONString(value.Value));
                    }
                    else if (value.Type == TokenType.Number)
                    {
                        addKeyValue(key.Value, new JSONNumber(Double.Parse(value.Value)));
                    }
                    else if (value.Type == TokenType.Null)
                    {
                        addKeyValue(key.Value, new JSONNull());
                    }
                    else if (value.Type == TokenType.False)
                    {
                        addKeyValue(key.Value, new JSONFalse());
                    }
                    else if (value.Type == TokenType.True)
                    {
                        addKeyValue(key.Value, new JSONTrue());
                    }
                    else if (value.Type == TokenType.OpeningBracket)
                    {
                        addKeyValue(key.Value, parseArray(tokens));
                    }
                    else if (value.Type == TokenType.OpeningCurlyBracket)
                    {
                        addKeyValue(key.Value, parseObject(tokens));
                    }
                    else if (tokens.hasMore())
                    {
                        tokens.step();
                    }
                }
            }
        }
Esempio n. 3
0
        public JSONArray parseArray(JSONTokens tokens)
        {
            JSONArray list = new JSONArray();
            Token     value;

            while (tokens.hasMore())
            {
                value = tokens.step();
                if (value.Type == TokenType.ClosingBracket)
                {
                    break;
                }
                if (value.Type == TokenType.String)
                {
                    list.Add(new JSONString(value.Value));
                }
                else if (value.Type == TokenType.Number)
                {
                    list.Add(new JSONNumber(Double.Parse(value.Value)));
                }
                else if (value.Type == TokenType.Null)
                {
                    list.Add(new JSONNull());
                }
                else if (value.Type == TokenType.True)
                {
                    list.Add(new JSONTrue());
                }
                else if (value.Type == TokenType.False)
                {
                    list.Add(new JSONFalse());
                }
                else if (value.Type == TokenType.OpeningBracket)
                {
                    list.Add(parseArray(tokens));
                }
                else if (value.Type == TokenType.OpeningCurlyBracket)
                {
                    list.Add(parseObject(tokens));
                }
            }

            return(list);
        }