Пользовательская Json-сериализация класса

У меня есть код, структурированный, как показано ниже.

public class Stats
{
        public string URL { get; set; }
        public string Status { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
        public int Length { get; set; }
}

и

 public class UrlStats
 {
        public string URL { get; set; }
        public int TotalPagesFound { get; set; }
        public List<Stats> TotalPages { get; set; }
        public int TotalTitleTags { get; set; }
        public List<Stats> TotalTitles { get; set; }
        public int NoDuplicateTitleTags { get; set; }
        public List<Stats> DuplicateTitles { get; set; }
        public int NoOverlengthTitleTags { get; set; }
        public List<Stats> OverlengthTitles { get; set; }
 }

По сути, я сканирую веб-сайт на предмет статистики, такой как теги заголовков, повторяющиеся заголовки и т. д.

Я использую JQuery и делаю вызовы AJAX к веб-службе и извлекаю статистику URL-адресов, пока процесс выполняется, чтобы показать статистику URL-адресов пользователей, собранную далеко, поскольку сканирование большого веб-сайта занимает довольно много времени. Итак, каждые 5 секунд я получаю статистику с сервера. Теперь проблема заключается во всех данных переменных списка, которые мне нужно отправить в конце, когда обработка сканирования завершена, а не во время обновлений. Что происходит прямо сейчас, переменные данные List<Stats>также отправляются во время обновлений, что представляет собой большой кусок данных, и я хочу отправлять только переменные типа int, которые необходимы для отображения обновлений процесса.

Из поиска в Интернете я не смог найти ничего полезного для решения моей проблемы, и я обнаружил, что Json.NET - очень хорошая библиотека, но я действительно не знаю, как правильно ее использовать, чтобы получить то, что я хочу.

В основном я ищу свойства сериализации в зависимости от их типа данных во время выполнения, если это возможно.

21
задан vaxquis 21 August 2017 в 23:31
поделиться