Чтение не-html-содержимого с помощью AgilityPack

c# html-agility-pack

Вопрос

Одна из услуг, которые мы загружаем, отвечает только чистым объектом JSON. Мы загружаем все сервисы с пакетом обновления html, но все это. Другие службы представляют собой тег скрипта с JSON внутри, и он работает так, как ожидалось. Но я не могу загрузить эти данные, когда он поставляется в формате, отличном от html. Загруженный документ не имеет элементов, а свойство Text - пустая строка, внешнее / внутреннее html объекта DocumentElement вызывает исключение null объекта, innerText пуст или null.

Я пытаюсь загрузить эту службу с помощью HttpWebRequest, и она выполняет эту работу, но я не хочу смешивать технологии только потому, что эта служба.

Возможно ли загружать чистую страницу данных JSON с помощью HtmlAgilityPack?

Принятый ответ

ОБНОВИТЬ :

Оказалось, что я неправильно понял вопрос.

Основная функциональность HAP заключается в анализе HTML, в то время как ваша проблема заключается в загрузке HTML (или JSON в этом случае). HtmlWeb HAP HtmlWeb только базовые функции для выполнения этой задачи, поэтому вам, скорее всего, придется переключиться на другие инструменты, когда вы окажетесь в ситуации, когда HtmlWeb больше не работает. Это еще один пример такой ситуации: настройки HTML Agility Pack


Первоначальный ответ:

Быстрый тест показывает, что DocumentElement.InnerText возвращает JSON просто отлично:

var json = @"{
    identifier: '2051189775',     //PRODUCT ID
    fn: 'Fit- Whiskered Dark Wash Skirt',
    category: ['sale'],
    brand: 'Brand Name',
    price: '22.90',  // this would be the discount price
    amount: '31.80',  // this would be the original price
    currency: 'USD',
    //List can me even more.
};";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(json);

Console.WriteLine(doc.DocumentNode.InnerText);

Демо-версия: https://dotnetfiddle.net/nPT49L

Если это не работает для вас, отправьте образцы данных JSON, которые продемонстрируют проблему.




Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему