2016-03-03 57 views
0

我的查詢是我想用C#將html轉換爲json。有沒有辦法做到這一點。我搜索了很多,發現有關使用Javascript Serializer和Newtonsoft將html字符串序列化爲json的文章。但是這些序列化程序除了在html字符串周圍添加開始和結束大括號外,什麼也不做。我不想那樣。我想將整個html轉換爲json,以便我可以使用C#對象從html中獲取相關信息,而不是使用常規的展開式來解析html。 Html可以是來自互聯網上任何網站的任何有效的HTML。我正在使用http請求&使用C#響應對象。如何將html轉換爲json與C#?

請不要建議使用html敏捷性包,因爲這也會做與序列化相同的事情。

如果任何人有任何想法如何用C#做到這一點,那麼請分享您的想法。

+0

目前還不清楚你期望作爲答案或期待答案。對於您遇到的任何特定問題,請包括[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。另請閱讀[我如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)。確保你的問題具體而不是過於寬泛。最後你必須自己做一個嘗試,論壇成員不會爲你寫代碼。 – Igor

+0

你能否澄清一下爲什麼使用專門爲查詢HTML *而設計的工具來查詢HTML是一個壞主意?而你認爲唯一的其他選擇是使用正則表達式或將其轉換爲JSON?似乎對我來說是一個XY問題。 – Rob

回答

1

我會告訴你爲什麼你的問題會引起混淆。 考慮例子的HTML:

<html> 
<body> 
    <p> example of paragraph </p> 
</body>  
</html> 

JSON的實施例:

{"employees":[ 
    {"firstName":"John", "lastName":"Doe"}, 
    {"firstName":"Anna", "lastName":"Smith"}, 
    {"firstName":"Peter", "lastName":"Jones"} 
]} 

JSON是什麼,在其上生成html或初始貫。所以,當你說你想將html轉換爲json時,這真的很讓人困惑,因爲根據你想要進行這種轉換的規則是不可能的。或者在創建json時,應該忽略/添加來自html的哪些標籤。

+1

1.以客觀的方式,將每個元素當作一個對象。所以你產生這樣的: ''' { 「元素」: { 「類型」: 「HTML」, 「內容」:空, 「孩子」: { 「類型」:」身體」, 「內容」:空, 「孩子」:[{ 「類型」: 「p」, 「內容」: 「款型的例子」, 「孩子」: ... }''' 2.如果沒有說明哪個應該省略,那麼應該包括在內。 – ignacy130

0

這裏有一個解決方案的JavaScript示例:Map HTML to JSON DOM解析器非常相似,因此您可以嘗試在C#中實現它。 (我也會對這樣的實現感興趣:D)