繁体   English   中英

MarkLogic REST API-JSON响应

[英]MarkLogic REST API - JSON Response

我正在使用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"}]

如何在用户界面侧检索标题值? 如果我要求语法错误

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

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

你可以这样做:

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

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

为了完整起见,一种替代方法是为搜索响应编写并安装一个转换,该转换将在空名称空间中生成元数据元素,或者根据您的要求调整JSON表示形式。

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

暂无
暂无

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

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