Lire du contenu non-HTML avec AgilityPack

c# html-agility-pack

Question

L'un des services que nous chargeons ne répond que par un objet JSON pur. Nous chargeons tous les services avec le pack d'agilité html, sauf cela. D'autres services effectuent le rendu d'une balise de script, avec un JSON, et cela fonctionne comme prévu. Mais je ne suis pas capable de charger ces données, quand elles viennent au format non-HTML. Le document chargé ne contient aucun élément et la propriété Text est une chaîne vide. Le code HTML externe / interne de DocumentElement lève une exception null.

J'essaie de charger ce service avec HttpWebRequest et il fait le travail, mais je ne veux pas mélanger les technologies juste parce que ce service.

Est-il possible de charger une page de données JSON pure avec HtmlAgilityPack?

Réponse acceptée

METTRE À JOUR :

Il s'est avéré que j'ai mal compris la question.

La fonctionnalité principale de HAP est destinée à l'analyse HTML, tandis que votre problème réside dans le téléchargement du code HTML (ou JSON dans ce cas). HtmlWeb de HAP ne fournit que des fonctionnalités de base pour effectuer cette tâche. Vous êtes donc très probablement obligé de passer à d'autres outils lorsque vous vous trouvez dans une situation où HtmlWeb ne fonctionne plus. Voici un autre exemple de ce type de situation: paramètres HTML Agility Pack.


Réponse initiale:

Un test rapide montre que DocumentElement.InnerText renvoie le code JSON comme il convient:

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);

Démo en direct ici: https://dotnetfiddle.net/nPT49L

Si cela ne fonctionne pas pour vous, publiez des exemples de données JSON qui illustreront le problème.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi