コード例 #1
0
        private static object ParseNumber(char[] json, ref int index, ref bool success)
        {
            SimpleJsonTool.EatWhitespace(json, ref index);
            int    lastIndexOfNumber = SimpleJsonTool.GetLastIndexOfNumber(json, index);
            int    length            = lastIndexOfNumber - index + 1;
            string text = new string(json, index, length);
            object result;

            if (text.IndexOf(".", StringComparison.OrdinalIgnoreCase) != -1 || text.IndexOf("e", StringComparison.OrdinalIgnoreCase) != -1)
            {
                double num;
                success = double.TryParse(new string(json, index, length), NumberStyles.Any, CultureInfo.InvariantCulture, out num);
                result  = num;
            }
            else
            {
                long num2;
                success = long.TryParse(new string(json, index, length), NumberStyles.Any, CultureInfo.InvariantCulture, out num2);
                result  = num2;
            }
            index = lastIndexOfNumber + 1;
            return(result);
        }