Exemplo n.º 1
0
        public void CloseArray()
        {
            if (!TSM.IsGoodForArrayClosure())
            {
                throw new Exception("Incorrect JSON Syntax: Incorrectly placed right square bracket.");
            }

            CloseValue();
            jsonStack.Peek().SetAsComplete();
            if (jsonStack.Count > 1)
            {
                IJSONContainer iJV = jsonStack.Pop();
                jsonStack.Peek().AddChild(iJV);
            }

            TSM.SetLastToken(JSONTOKEN.RIGHTSQUARE);
            return;
        }
Exemplo n.º 2
0
        private void CloseValue()
        {
            if (jsonStack.Peek() is JSONProperty)
            {
                JSONProperty jProp = (JSONProperty)jsonStack.Peek();
                if (jProp.state == JSONProperty.JSONPROPERTYSTATE.NAMESET)
                {
                    if (stringHolder.Length > 0)
                    {
                        jProp.SetValue(stringHolder.ToString());
                        stringHolder.Remove(0, stringHolder.Length);
                        TSM.SetLastToken(JSONTOKEN.STRINGVALUE);
                    }
                    else
                    {
                        throw new Exception("Incorrect JSON Syntax: Property has no value");
                    }
                }

                if (jProp.state == JSONProperty.JSONPROPERTYSTATE.COMPLETE)
                {
                    jsonStack.Peek().SetAsComplete();
                    IJSONContainer iJV = jsonStack.Pop();
                    jsonStack.Peek().AddChild(iJV);
                }
            }

            if (jsonStack.Peek() is JSONArray)
            {
                JSONArray jArr = (JSONArray)jsonStack.Peek();
                if (stringHolder.Length > 0)
                {
                    jArr.AddChild(stringHolder.ToString());
                    stringHolder.Remove(0, stringHolder.Length);
                    TSM.SetLastToken(JSONTOKEN.STRINGVALUE);
                }
            }
        }