【问题标题】:MarkLogic REST API - JSON ResponseMarkLogic REST API - JSON 响应
【发布时间】:2014-04-02 11:22:00
【问题描述】:

我正在使用 MarkLogic 7 REST API 在 XML 文档数据库之上构建一个 AngularJS 应用程序。我的文件是 NEWSML-G2 格式。我已配置自定义查询选项以仅返回与搜索字符串匹配的每个文档的标题和创建日期。问题是这样的。

我的 XML 中有一个标题元素。

<nitf version="-//IPTC//DTD NITF 3.6//EN" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:newzmeta="http://newz.nl/metadata/" xmlns="http://iptc.org/std/NITF/2006-10-18/">
<head>
<title newz:origin="Generated" xmlns:newz="http://newz.nl/">Test Article</title>
....
</nitf>

在我的自定义查询选项中,我使用了以下行。

<extract-metadata>
  <qname elem-ns="http://iptc.org/std/NITF/2006-10-18/" elem-name="title"/>
  ....
</extract-metadata>

现在,问题是当我点击 REST 接口进行查询并要求 JSON 格式的结果时,我在响应中得到以下内容

"metadata":[{"{http://iptc.org/std/NITF/2006-10-18/}title":"Obama assumes the office of the President of the United States","metadata-type":"element"},{"  {http://iptc.org/std/nar/2006-10-01/}firstCreated":"2009-01-20T05:00:09","metadata-type":"element"}]

如何在 UI 端检索标题值?如果我要求,我会收到语法错误

 result.metadata.{http://iptc.org/std/NITF/2006-10-18/}title

有没有办法专门访问这个值,或者以某种方式更改从 MarkLogic 端返回的元素的名称?

【问题讨论】:

    标签: json rest marklogic


    【解决方案1】:

    你可以这样做:

    result.metadata.['{http://iptc.org/std/NITF/2006-10-18/}title']
    

    括号表示法用于访问名称不是有效 JavaScript 标识符的属性,从而阻止您使用点表示法。

    【讨论】:

      【解决方案2】:

      为了完整起见,另一种方法是为搜索响应编写和安装转换,该转换在空命名空间中生成元数据元素或根据您的要求调整的 JSON 表示。

      但是,最简单的方法就是按照 Dave 的建议使用括号表示法。

      【讨论】:

        猜你喜欢
        • 2019-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-21
        相关资源
        最近更新 更多