2014-09-30 34 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;