使用AgilityPack讀取非HTML內容

c# html-agility-pack

我們正在加載的服務之一就是使用純JSON對象進行響應。我們正在使用html agility pack加載所有服務,除此之外。其他服務正在呈現腳本標記,其中包含JSON,並且它按預期工作。但是當它以非html格式出現時,我無法加載這些數據。加載的文檔沒有元素,Text屬性是空字符串,DocumentElement的外部/內部html拋出對象null異常,innerText為空或null。

我嘗試使用HttpWebRequest加載這一項服務並完成工作,但我不想僅僅因為這項服務而混合技術。

是否可以使用HtmlAgilityPack加載純JSON數據頁面?

一般承認的答案

更新:

原來我誤解了這個問題。

HAP的核心功能是用於解析HTML,而您的問題在於下載HTML(在這種情況下為JSON)。 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數據。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow