【问题标题】:How to Convert MS SharePoint $metadata XML Response into Standard Odata JSON in NodeJS?如何在 NodeJS 中将 MS SharePoint $metadata XML 响应转换为标准 Odata JSON?
【发布时间】:2016-10-23 02:41:57
【问题描述】:

我正在处理 MS SharePoint 2013 集成,在我的用例中,我只想处理 JSON 数据。
我能够使用 Node Module - datajs_vanilla 将所有 API XML 响应(如文件、文件夹、列表、ListItem 等)转换为 OData JSON,但我无法将 https://mysite/_api/$metadata 转换为 OData JSON . 为 $metadata 端点执行 datajs 时出现以下错误:

error:{"message":"no handler for data"} 

下面是我的代码sn-p:

OData.read({
        requestUri: 'https://example.com/_api/$metadata',
        headers: {
                    'Authorization': 'Bearer token_value',
                    'Accept':'application/xml;charset=utf-8' 
                 } 
        }, function (data, response) {
            console.log("Operation succeeded."+JSON.stringify(data));
    }, function (err) {
        console.log("Error occurred " + JSON.stringify(err));
});

我在这里遗漏了一些东西来转换成 JSON?

您能否建议我使用节点模块将 edmx sharepoint $metadata XML 响应转换为 OData JSON 的可能解决方案?

谢谢。

【问题讨论】:

    标签: node.js sharepoint-2013 edmx datajs


    【解决方案1】:

    查看类似问题的答案Get OData $metadata in JSON format

    元数据文档未使用 OData atom/xml format 定义,这就是 datajs vanilla 无法解析它的原因。 元数据格式为CSDL format。元数据文档示例 - http://services.odata.org/V4/TripPinServiceRW/$metadata。

    通常用于发现和客户端生成的元数据,因为它具有类型信息和所有实体关系。将服务响应序列化为 json 和 json 中的服务文档应该足以让您使用服务。

    【讨论】:

    • 感谢您的回复。您能否建议读取 $metadata 并希望在节点 js 中检索“文件夹”对象元数据的最佳方法。
    • 我认为这个帖子应该对你有所帮助 - stackoverflow.com/questions/5672151/…
    • 文件和文件夹API参考对应的Json表示可以在msdn.microsoft.com/en-us/library/office/dn450841.aspx#bk_Folder找到
    • 忘了说你不需要做转换,你必须在 header 中指定 Api 响应需要在 Json headers 中: { "accept": "application/json; odata=verbose "
    • 是的,我知道这部分。我想转换像文件、文件夹这样的对象元数据,以便我可以创建它的实体。这就是我问你如何从中检索特定对象元数据的原因。
    猜你喜欢
    • 2017-05-02
    • 2021-12-14
    • 2020-02-28
    • 1970-01-01
    • 2018-07-29
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    相关资源
    最近更新 更多