/// <summary>
        /// Se encarga de leer un archivo json
        /// </summary>
        /// <param name="fileName">Corresponde a la ruta donde se encuentra el archivo json</param>
        /// <returns>Devuelve un stdClassCSharp con las propiedades del archivo json</returns>
        public static stdClassCSharp readJsonFile(string fileName = "")
        {
            stdClassCSharp fileJson = new stdClassCSharp();

            if (File.Exists(fileName))
            {
                StreamReader archivoJSON = new StreamReader(fileName, Encoding.UTF8, true);
                string       textoJson   = archivoJSON.ReadToEnd();
                archivoJSON.Dispose();
                archivoJSON.Close();
                fileJson = (stdClassCSharp)JSON.JsonDecode(textoJson);
            }
            return(fileJson);
        }
        protected static stdClassCSharp ParseObject(char[] json, ref int index, ref bool success)
        {
            stdClassCSharp stdccs = new stdClassCSharp();

            JSON.NextToken(json, ref index);
            bool flag = false;

            while (!flag)
            {
                int num = JSON.LookAhead(json, index);
                if (num == 0)
                {
                    success = false;
                    return(null);
                }
                if (num == 6)
                {
                    JSON.NextToken(json, ref index);
                }
                else
                {
                    if (num == 2)
                    {
                        JSON.NextToken(json, ref index);
                        return(stdccs);
                    }
                    string key = JSON.ParseString(json, ref index, ref success);
                    if (!success)
                    {
                        success = false;
                        return(null);
                    }
                    num = JSON.NextToken(json, ref index);
                    if (num != 5)
                    {
                        success = false;
                        return(null);
                    }
                    var value = JSON.ParseValue(json, ref index, ref success);
                    if (!success)
                    {
                        success = false;
                        return(null);
                    }
                    stdccs[key.ToString()] = value;
                }
            }
            return(stdccs);
        }
        /// <summary>
        /// Se encarga de generar un archivo stdClass con los datos de los servicios
        /// </summary>
        /// <returns>stdClasCSharp con datos de los servicios rest predeterminados</returns>
        public static stdClassCSharp getFileServices()
        {
            stdClassCSharp archivoAmbiente = new stdClassCSharp();

            if (File.Exists("C:\\SYS\\PROGS\\RESTJSONCONFIG.JSON"))
            {
                StreamReader archivoDeUsuarios = new StreamReader("C:\\SYS\\PROGS\\RESTJSONCONFIG.JSON",
                                                                  Encoding.UTF8, true);
                string textoJson = archivoDeUsuarios.ReadToEnd();
                archivoDeUsuarios.Dispose();
                archivoDeUsuarios.Close();
                stdClassCSharp archivoRest = (stdClassCSharp)JSON.JsonDecode(textoJson);
                archivoAmbiente             = archivoRest[archivoRest["ambiente"]];
                archivoAmbiente["ambiente"] = archivoRest["ambiente"];
            }
            return(archivoAmbiente);
        }
        /// <summary>
        /// Método que se encarga de convertir un arreglo de json en parte para un HTTPRequest
        /// </summary>
        /// <param name="llave">Correpode al nombre de la llave utilizada</param>
        /// <param name="listaStd">Corresponde a la lista de stdclass</param>
        /// <returns></returns>
        private string convertirListaEnArregloHTTPString(string llave, stdClassCSharp listaStd)
        {
            StringBuilder sbJsonArray = new StringBuilder("");

            try
            {
                int index = 0;
                foreach (stdClassCSharp stdActual in listaStd.toArray())
                {
                    sbJsonArray.Append(stdActual.getHTTPString(llave + "%5B" + index + "%5D"));
                    sbJsonArray.Append("&");
                    index++;
                }
                sbJsonArray.Remove(sbJsonArray.Length - 1, 1);
            }
            catch
            {
                sbJsonArray.Clear();
                sbJsonArray.Append("");
            }
            return(sbJsonArray.ToString());
        }
        protected static stdClassCSharp ParseArray(char[] json, ref int index, ref bool success)
        {
            stdClassCSharp arrayList = new stdClassCSharp(true);

            JSON.NextToken(json, ref index);
            bool flag          = false;
            int  indiceArreglo = 0;

            while (!flag)
            {
                int num = JSON.LookAhead(json, index);
                if (num == 0)
                {
                    success = false;
                    return(null);
                }
                if (num == 6)
                {
                    JSON.NextToken(json, ref index);
                }
                else
                {
                    if (num == 4)
                    {
                        JSON.NextToken(json, ref index);
                        break;
                    }
                    var value = JSON.ParseValue(json, ref index, ref success);
                    if (!success)
                    {
                        return(null);
                    }
                    arrayList[indiceArreglo] = value;
                    indiceArreglo++;
                }
            }
            return(arrayList);
        }