private static object ReadNumber(System.IO.TextReader reader) { reader.EatWhiteSpace(); char[] endchars = { '}', ']', ',', ' ' }; string?nstr = reader.Seek(endchars); if (nstr.Contains(".")) { double value = Convert.ToDouble(nstr); if (value <= Single.MaxValue) { return(Convert.ToSingle(nstr)); } return(value); } else { long value = Convert.ToInt64(nstr); if (value <= Int32.MaxValue) { return(Convert.ToInt32(nstr)); } return(value); } }