1

所以我在php中做

$.ajax({
         url: 'parser.php',
         type: 'POST',
         data: 'Data=' + $.toJSON(schedule),
         success: function (res) {
                  alert(res);
         }
       });

即将到来的对象

stdClass object {
   weeks => array (1) (
     [0] => stdClass object {
       0 => stdClass object {}
       1 => stdClass object {}
       2 => stdClass object {}
       3 => stdClass object {}
       4 => stdClass object {}
       5 => stdClass object {}
       6 => stdClass object {}
       alltime => (int) 60
     }
   )
   alltime => (int) 60
   hours => (int) 60
}

如何将 ajax 请求传递给 sharepoint 2010?
然后在服务器上进行解析。谢谢你。

4

1 回答 1

6

使用 .NET 4.0 非常容易做到这一点。从JSON 的兴起

WebClient webClient = new WebClient();
dynamic result = JsonValue.Parse(webClient.DownloadString(
    "https://api.foursquare.com/v2/users/self?oauth_token=XXXXXXX"));
Console.WriteLine(result.response.user.firstName);

不幸的是,SharePoint 2010 构建在 .NET 3.5 之上,因此我们无法使用该代码。

相反,要调用 Web 服务,我们可以使用类似使用 C#从 REST 服务获取数据中描述的代码:

public string GetMessage( string endPoint )
{
    HttpWebRequest request = CreateWebRequest( endPoint );

    using ( var response = (HttpWebResponse) request.GetResponse( ) )
    {
        var responseValue = string.Empty;

        if ( response.StatusCode != HttpStatusCode.OK )
        {
            string message = String.Format( "POST failed. Received HTTP {0}", 
                response.StatusCode );
            throw new ApplicationException( message );
        }

        // grab the response
        using ( var responseStream = response.GetResponseStream() )
        {
            using ( var reader = new StreamReader( responseStream ) )
            {
                responseValue = reader.ReadToEnd();
            }
        }

        return responseValue;
    }
}

然后我们可以使用JavaScriptSerializer解析为 JSON 响应。

var serializer = new JavaScriptSerializer();
var result = serializer.DeserializeObject(response);

JavaScriptSerializer 使用起来有点古怪。如果你想要一些更优雅的东西,你可以使用像Json.NET这样的第三方库来解析 JSON 响应。

JObject o = JObject.Parse(responseValue);

我希望这有帮助,

于 2012-08-24T15:27:40.780 回答