2016-03-03 58 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)