如何从共享点列表中检索json对象

时间:2012-12-14 11:40:24

标签: javascript xml json sharepoint sharepoint-2010

我自己创建了一个包含sharepoint 2007的自定义列表,这与任何有效的Excel电子表格完全相同。

我被告知我可以将所有信息作为json或XML对象来解决。我无法访问文件系统,只能访问sharepoint web界面。

我可以使用网址并执行正常的getJson吗?

    $.getJSON("http://somesharepointurl.asp?get=json",function(results){
        console.info(results);
        $.each(results, function(){

        });
    });

或者在没有编写后端服务的情况下没有办法做到这一点?

修改

https://someserver/sites/DisasterRecovery/eventmgmt/DRR/_vti_bin/owssvr.dll?Cmd=Display&List={B0ACA997-8A41-498B-97FE-B276D48F64D7}&XMLDATA=TRUE

我试过这个......它给了我这个:

HTTP/1.1 200 OK
Server: Microsoft-IIS/7.5
Date: Fri, 14 Dec 2012 11:41:55 GMT
Connection: close

不知道该怎么找我害怕:(

4 个答案:

答案 0 :(得分:3)

  1. SharePoint 2007不向您提供JSON格式的结果,仅提供SOAP / XML Web服务以及您在更新中引用的URL协议
  2. 确保将/ _vti_bin部分附加到正确的子网站的地址,而不是库(尽管如果你犯了这个错误,你会得到404)

答案 1 :(得分:2)

找到了简单的答案:

jquery.SPServices

你需要jQuery 1.4.2+才能运行它,但它非常棒:)它有更多的方法,而不仅仅是获取XML或json。

 var query = "<Query><OrderBy><FieldRef Name='Created' Ascending='False' /></OrderBy</Query>";
 $().SPServices({
     operation:"GetListItems",
     async:false,
     listName:"Home Page Carousel",
     CAMLViewFields:"<ViewFields><FieldRef Name='userName'/><FieldRef Name='userDepartment'/><FieldRef Name='message'/></ViewFields>",
     CAMLQuery:query,
     CAMLRowLimit:10,
     completefunc:function (xData, Status) {
     console.info(xData);
     console.info(Status);
         $(xData.responseXML).SPFilterNode("z:row").each(function () {
             var $this = $(this);
             $this.attr("ows_message")//retrieve list data here and do stuff here
         });
     }
 });

这将为您提供一大堆XML。

答案 2 :(得分:1)

另一个选项,在sharepoint 2010中尝试使用像这样的OData:http://webname/_vti_bin/ListData.svc/listname,过滤和排序的功能与标准OData相同,可在此处找到参考:http://www.odata.org/documentation

答案 3 :(得分:0)

尝试将&amp; Query = *添加到网址查询字符串