Leggere contenuti non html con AgilityPack

c# html-agility-pack

Domanda

Uno dei servizi che stiamo caricando risponde solo con un oggetto JSON puro. Stiamo caricando tutti i servizi con il pacchetto agility html, tutto tranne questo. Altri servizi stanno eseguendo il rendering di un tag script, con un JSON all'interno, e funziona come previsto. Ma non sono in grado di caricare questi dati, quando sono in formato non html. Il documento caricato non ha elementi e la proprietà Text è una stringa vuota, l'html esterno / interno di DocumentElement lancia l'eccezione nulla, innerText è vuoto o nullo.

Provo a caricare questo servizio con HttpWebRequest e fa il lavoro, ma non voglio mescolare le tecnologie solo perché questo servizio.

È possibile caricare una pagina di dati JSON pura con HtmlAgilityPack?

Risposta accettata

AGGIORNARE :

Ho scoperto di aver frainteso la domanda.

La funzionalità principale di HAP è l'analisi dell'HTML, mentre il tuo problema è nel download dell'HTML (o JSON in questo caso). HtmlWeb di HAP HtmlWeb solo funzionalità di base per eseguire questa attività, quindi è molto probabile che tu debba passare ad altri strumenti una volta che ti trovi in ​​una situazione in cui HtmlWeb non funziona più. Questo è un altro esempio di questo tipo di situazione: le impostazioni di HTML Agility Pack


Risposta iniziale:

Il test rapido mostra che DocumentElement.InnerText restituisce correttamente 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);

Demo live qui: https://dotnetfiddle.net/nPT49L

Se questo non funziona, per favore pubblica dei dati JSON di esempio che dimostreranno il problema.




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché