【问题标题】:How to retrieve a json object from a sharepoint list如何从共享点列表中检索 json 对象
【发布时间】:2012-12-14 11:40:24
【问题描述】:

我使用 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

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

【问题讨论】:

    标签: javascript xml json sharepoint sharepoint-2010


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

    【讨论】:

    • 类似....sites/gskglobal/mcLaren-partnership/Lists/Home%20Page%20Carousel?更换_vti_bin?
    • 查看 Shawn 对 SharePoint 2010 OData REST 服务的回答以及您对 jQuery.SPServices 的接受。这些应该足够了。
    • 正确的应该在 "/Lists" 之前结束 - 在您的情况下,sites/gskglobal/mcLaren-partnership/_vti_bin/... 而 jQuery.SPServices 会为您计算出来。
    【解决方案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 块。

    【讨论】:

    • 是的,Marc 做得很好,使前端开发人员和高级用户可以进行中间层定制。 SharePoint 2007 几乎唯一可行的通用选项。
    • 没错!我认为人们应该对此进行 +1,以便其他用户相信它:p
    【解决方案3】:

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

    【讨论】:

    • 虽然不在问题的标题中,但主题起始者明确定义了他们的环境是 SharePoint 2007。此响应对搜索用户很有帮助,但不应误导这些用户。该版本没有这样的功能。
    【解决方案4】:

    尝试将 &Query=* 添加到 URL 查询字符串

    【讨论】:

      猜你喜欢
      • 2019-10-07
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      • 2015-02-10
      • 1970-01-01
      相关资源
      最近更新 更多