Einer der Dienste, die wir laden, reagiert nur mit reinem JSON-Objekt. Wir laden alle Dienste mit HTML-Agility-Pack, alles außer diesem. Andere Dienste rendern ein Skript-Tag mit einem JSON, und es funktioniert wie erwartet. Aber ich kann diese Daten nicht laden, wenn sie nicht im HTML-Format vorliegen. Loaded Dokument hat keine Elemente, und Text -Eigenschaft ist eine leere Zeichenfolge, DocumentElement äußere / innere HTML löst Objekt Null-Ausnahme, innereText ist leer oder null.
Ich versuche, diesen einen Dienst mit HttpWebRequest zu laden, und es macht den Job, aber ich möchte Technologien nicht nur wegen dieses Dienstes mischen.
Ist es möglich, reine JSON-Datenseite mit HtmlAgilityPack zu laden?
UPDATE:
Es stellte sich heraus, dass ich die Frage falsch verstanden habe.
Die Hauptfunktionalität von HAP ist das Parsen von HTML, während das Problem darin besteht, den HTML-Code (oder in diesem Fall JSON) herunterzuladen. HAP's HtmlWeb
nur grundlegende Funktionen zur Durchführung dieser Aufgabe, so dass Sie sehr wahrscheinlich zu anderen Tools wechseln müssen, wenn Sie sich in einer Situation befinden, in der HtmlWeb
nicht mehr funktioniert. Dies ist ein weiteres Beispiel für diese Art von Situation: HTML Agility Pack-Einstellungen
Anfangsantwort:
Schnelltest zeigt, dass DocumentElement.InnerText
das JSON einfach zurückgibt:
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);
Live-Demo hier: https://dotnetfiddle.net/nPT49L
Wenn dies nicht für Sie funktioniert, veröffentlichen Sie bitte Beispiel-JSON-Daten, die das Problem veranschaulichen.