2014-09-30 57 views
0

可以说我有一个的HTMLDocument变量:从的HTMLDocument C#从内检索JSON

HtmlDocument document = Client.Get(My_Webpage); 

在其内部HTML看起来是这样的:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    lang="en" 
    xml:lang="en" 
    dir="ltr"> 

... 

<head> 
<script>...</script> 

<script type="text/javascript">...</script> 

<script type="text/javascript"> 
    <!--//--><![CDATA[//><!-- 
     jQuery.extend(*JSON THAT I NEED*) 
    //--><!]]> 
</script> 

</head> 

... 

是否有提取的简单方法JSON的?目前我只是将HTML作为字符串来检索内容,然后将其反序列化为一个对象。然而,这似乎并不是正确的方式。

+0

什么是JSON格式? HtmlAgility包非常适合用来播放HTML,但不太擅长解析JSON。你能用正则表达式来辨别它吗? – 2014-09-30 09:04:54

回答

0

建设,这将是典型的方式:

服务器端你有一个服务(using System.Web.Mvc;

[WebMethod] 
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] 
public JsonResult getData(int nr) 
{ 
    return Json(Enumerable.Range(nr)); 
} 

客户端,你有

$.ajax({ 
    url: 'YourServiceURL', 
    success: function(data) { 
    alert('Web Service Called!'); 
    } 
}); 

你可能想看看在:http://www.asp.net/get-started

+0

也许在这里需要一些进一步的上下文 - 我没有使用ASP或MVC。它只是一个控制台应用程序,它分析网页以从中提取某些信息。 – 2014-09-30 09:00:26

+0

不管它是否是mvc(只是一个有意义的例子)。 http://stackoverflow.com/questions/2158106/web-reference-vs-service-reference – Margus 2014-09-30 09:23:51

0

我会正则表达式这一个:

string jsonYouNeed = Regex.Match(documentInnerHtml,@"jQuery\.extend\((.*?)\)").Groups[1].Value;