MarkLogic REST API - JSON响应

时间:2014-04-02 11:22:00

标签: json rest marklogic

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

我的XML中有一个title元素。

<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端返回的元素的名称?

2 个答案:

答案 0 :(得分:4)

你可以这样做:

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

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

答案 1 :(得分:1)

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

但是,最简单的方法就是使用括号表示的支架表示法。