private JsonSymbolItem buildSymbolItem(JsonSymbolItem rLastSymbol, int begin, ref int end)
        {
            if (originData[begin] == '{')
            {
                end = begin + 1;
                return(new JsonSymbolItem()
                {
                    value = "{", type = JsonSymbolType.ObjStart
                });
            }
            else if (originData[begin] == '}')
            {
                end = begin + 1;
                return(new JsonSymbolItem()
                {
                    value = "}", type = JsonSymbolType.ObjEnd
                });
            }
            else if (originData[begin] == '[')
            {
                end = begin + 1;
                return(new JsonSymbolItem()
                {
                    value = "[", type = JsonSymbolType.ArrayStart
                });
            }
            else if (originData[begin] == ']')
            {
                end = begin + 1;
                return(new JsonSymbolItem()
                {
                    value = "]", type = JsonSymbolType.ArrayEnd
                });
            }
            else if (originData[begin] == ',')
            {
                end = begin + 1;
                return(new JsonSymbolItem()
                {
                    value = ",", type = JsonSymbolType.ObjSplit
                });
            }
            else if (originData[begin] == ':')
            {
                end = begin + 1;
                return(new JsonSymbolItem()
                {
                    value = ":", type = JsonSymbolType.ElementSplit
                });
            }

            string tempWord = "";

            //如果是关键字、数字或者字符串
            if (!string.IsNullOrEmpty(tempWord = LexicalAnalysis.isKeyword(originData, begin, ref end)))
            {
                JsonSymbolItem rSymbol = new JsonSymbolItem()
                {
                    value = tempWord, type = JsonSymbolType.Value, node = new JsonData(tempWord)
                };
                LexicalAnalysis.isSpecialSymbol(originData, end, ref end);
                if (originData[end] == ':')
                {
                    rSymbol.type = JsonSymbolType.Key;
                    rSymbol.node = null;
                }
                return(rSymbol);
            }
            if (!string.IsNullOrEmpty(tempWord = LexicalAnalysis.isDigit(originData, begin, ref end)))
            {
                JsonSymbolItem rSymbol = new JsonSymbolItem()
                {
                    value = tempWord, type = JsonSymbolType.Value, node = new JsonData(tempWord)
                };
                LexicalAnalysis.isSpecialSymbol(originData, end, ref end);
                if (originData[end] == ':')
                {
                    rSymbol.type = JsonSymbolType.Key;
                    rSymbol.node = null;
                }
                return(rSymbol);
            }
            if (!string.IsNullOrEmpty(tempWord = LexicalAnalysis.isString(originData, begin, ref end)))
            {
                tempWord = tempWord.Substring(1, tempWord.Length - 2);
                JsonSymbolItem rSymbol = new JsonSymbolItem()
                {
                    value = tempWord, type = JsonSymbolType.Value, node = new JsonData(tempWord)
                };
                LexicalAnalysis.isSpecialSymbol(originData, end, ref end);
                if (originData[end] == ':')
                {
                    rSymbol.type = JsonSymbolType.Key;
                    rSymbol.node = null;
                }
                return(rSymbol);
            }
            //Debug.Log(string.Format("Json parse symbol item error! LastSymbol = {0}",
            //               rLastSymbol != null ? rLastSymbol.value : "null"));
            isValid = false;
            return(null);
        }