Парсинг через WebClient - C#

Узнай цену своей работы

Формулировка задачи:

Мне нужно парсить эту страницу http://ratings.tankionline.com/get_stat/profile/?user=MyLove_MySecret Вот так я достаю значение kills (также deaths, и т.д.):
"kills":15151,
      WebClient client = new WebClient();
            var myRaiting = new WebClient().DownloadString(
   string.Format("http://ratings.tankionline.com/get_stat/profile/?user={0}", Login.Text.ToLower()));
 ...
         Kill.Text = (myRaiting.Split(new[] { "kills":" }, StringSplitOptions.None)[1].Split(',')[0]);
Но мне еще нужно парсить это:
"rating":{"score":{"position":74194,"value":986},
Отсюда мне надо достать значение position и value в отдельные переменные

Решение задачи: «Парсинг через WebClient»

textual
Листинг программы
        static void Main(string[] args)
        {
            string json = @"""rating"":{""score"":{""position"":74194,""value"":986},";
            /* Моя ф-ция парсинга */
            string position = PARS.GetPars(json, @"position"":", @",");
            string value = PARS.GetPars(json, @"value"":", "}");
            Console.WriteLine("MY STRUCTURE - POSITION: " + position + " VALUE: " + value);
            /* Ф-ция Split */
            position = json.Split(':')[3].Split(',')[0];
            value = json.Split(':')[4].Split('}')[0];
            Console.WriteLine("USE SPLIT - POSITION: " + position + " VALUE: " + value);
            Console.ReadLine();
        }
 
        struct PARS
        {
            public static string GetPars(string strSource, string strStart, string strEnd, int Index = 0, int startPos = 0)
            {
                int iPos = 0;
                int iEnd = 0;
                int lenStart = strStart.Length;
                string strResult = null;
                strResult = string.Empty;
                for (int i = 0; i <= Index - 1; i += 1)
                {
                    iPos = strSource.IndexOf(strStart, startPos);
                    iEnd = strSource.IndexOf(strEnd, iPos + lenStart);
                    iEnd = iEnd + strEnd.Length;
                    if (iPos != -1 && iEnd != -1)
                    {
                        strSource = strSource.Substring(iEnd, strSource.Length - (0 + iEnd));
                    }
                    else {
                        break;
                    }
                }
                iPos = strSource.IndexOf(strStart, startPos);
                iEnd = strSource.IndexOf(strEnd, iPos + lenStart);
                if (iPos != -1 && iEnd != -1)
                {
                    strResult = strSource.Substring(iPos + lenStart, iEnd - (iPos + lenStart));
                }
                return strResult;
            }
 
            public static int Count(string strSource, string strStart, string strEnd, int startPos = 0)
            {
                int iPos = 0;
                int iEnd = 0;
                int lenStart = strStart.Length;
                int IntResult = 0;
                bool BooL = false;
                while (BooL == false)
                {
                    iPos = strSource.IndexOf(strStart, startPos);
                    iEnd = strSource.IndexOf(strEnd, iPos + lenStart);
                    if (iPos != -1 && iEnd != -1)
                    {
                        IntResult = IntResult + 1;
                        startPos = iEnd + 1;
                    }
                    else {
                        BooL = true;
                    }
                }
                return IntResult;
            }
 
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы