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; }
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); } } }