从HtmlDocument C#中从内部检索json

时间:2014-09-30 08:44:24

标签: c# json dom

假设我有一个HtmlDocument变量:

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作为字符串来操作以检索内容,然后将其反序列化为对象。然而,这似乎不是正确的方法。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我会使用正则表达式:

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