Beispiel #1
0
        public static JsonArray Parser(JsonTokenList tokenList)
        {
            JsonArray result = new JsonArray();

            for (int i = 1; i < tokenList.Count() - 1; ++i)
            {
                switch (tokenList[i].Type)
                {
                case JsonTokenType.STRING:
                    result.Add(new JsonValue(tokenList[i].Value, JsonValueType.STRING));
                    break;

                case JsonTokenType.NUMBER:
                    result.Add(new JsonValue(Double.Parse(tokenList[i].Value), JsonValueType.NUMBER));
                    break;

                case JsonTokenType.NULL:
                    result.Add(new JsonValue(null, JsonValueType.NULL));
                    break;

                case JsonTokenType.BOOLEAN:
                    result.Add(new JsonValue(bool.Parse(tokenList[i].Value), JsonValueType.NUMBER));
                    break;

                case JsonTokenType.START_OBJECT:
                {
                    JsonTokenList JsonObj = new JsonTokenList();
                    while (i < tokenList.Count())
                    {
                        JsonObj.Add(tokenList[i]);
                        if (tokenList[i].Type == JsonTokenType.END_OBJECT)
                        {
                            break;
                        }
                        ++i;
                    }
                    result.Add(new JsonValue(JsonObject.Parser(JsonObj), JsonValueType.OBJECT));
                }
                break;

                case JsonTokenType.START_ARRAY:
                {
                    JsonTokenList JsonArr = new JsonTokenList();
                    while (i < tokenList.Count())
                    {
                        JsonArr.Add(tokenList[i]);
                        if (tokenList[i].Type == JsonTokenType.END_ARRAY)
                        {
                            break;
                        }
                        ++i;
                    }
                    result.Add(new JsonValue(JsonArray.Parser(JsonArr), JsonValueType.ARRAY));
                }
                break;
                }
            }
            return(result);
        }
Beispiel #2
0
        public static JsonObject Parser(JsonTokenList tokenList)
        {
            bool           mode       = true;
            JsonObject     result     = new JsonObject();
            JsonObjectItem objectItem = new JsonObjectItem();

            for (int i = 1; i < tokenList.Count() - 1; ++i)
            {
                switch (tokenList[i].Type)
                {
                case JsonTokenType.COLON:
                    mode = true;
                    result.Add(objectItem);
                    objectItem = new JsonObjectItem();
                    break;

                case JsonTokenType.COMMA:
                    mode = false;
                    break;

                case JsonTokenType.STRING:
                    if (mode)
                    {
                        objectItem.Name = tokenList[i].Value;
                    }
                    else
                    {
                        objectItem.Value = new JsonValue(tokenList[i].Value, JsonValueType.STRING);
                    }
                    break;

                case JsonTokenType.NUMBER:
                    objectItem.Value = new JsonValue(double.Parse(tokenList[i].Value), JsonValueType.NUMBER);
                    break;

                case JsonTokenType.BOOLEAN:
                    objectItem.Value = new JsonValue(bool.Parse(tokenList[i].Value), JsonValueType.BOOLEAN);
                    break;

                case JsonTokenType.NULL:
                    objectItem.Value = new JsonValue(null, JsonValueType.NULL);
                    break;

                case JsonTokenType.START_OBJECT:
                {
                    JsonTokenList JsonObj = new JsonTokenList();
                    while (i < tokenList.Count())
                    {
                        JsonObj.Add(tokenList[i]);
                        if (tokenList[i].Type == JsonTokenType.END_OBJECT)
                        {
                            break;
                        }
                        ++i;
                    }
                    objectItem.Value = new JsonValue(JsonObject.Parser(JsonObj), JsonValueType.OBJECT);
                }
                break;

                case JsonTokenType.START_ARRAY:
                {
                    JsonTokenList JsonArr = new JsonTokenList();
                    while (i < tokenList.Count())
                    {
                        JsonArr.Add(tokenList[i]);
                        if (tokenList[i].Type == JsonTokenType.END_ARRAY)
                        {
                            break;
                        }
                        ++i;
                    }
                    objectItem.Value = new JsonValue(JsonArray.Parser(JsonArr), JsonValueType.ARRAY);
                }
                break;
                }
            }
            result.Add(objectItem);
            return(result);
        }