繁体   English   中英

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

[英]How to retrieve a json object from a sharepoint list

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

有人告诉我,我可以将所有信息作为 json 或 XML 对象获取。 我无权访问文件系统,只能访问 sharepoint Web 界面。

我可以只使用一个 url 并执行我的正常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

不知道要找什么,我害怕:(

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

找到了简单的答案:

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 块。

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

尝试在 URL 查询字符串中添加 &Query=*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM