json - 将 MarkLogic EVAL REST 服务输出作为 JSON 返回

标签 json xml rest eval marklogic

我正在制作一个演示,使用 MarkLogic 将从 Outlook 导出的电子邮件存储为 XML,以便在我离开 Outlook 时仍可搜索和访问它们。

我正在使用 AngularJS 前端调用使用 Jersey 以 JAVA 编写的自己的 REST 服务的 native MarkLogic REST 服务。

MarkLogic SEARCH REST 服务非常适合根据各种搜索条件取回对文档的引用列表,但我还想显示存储在找到的文档中的信息。

我想避免多次 REST 调用并只取回所需的信息,因此我尝试使用 EVAL REST 服务来运行 xQuery。

取回 XML(在多部分/混合消息中)效果很好,但我似乎无法取而代之的是 JSON,这会更方便,并且对于大多数其他 MarkLogic REST 服务来说非常容易。

我可以在我的 xQuery 中使用“json:transform-to-json()”,或者在我的 JAVA 代码中将 XML 转换为 JSON,但这对我来说看起来不太优雅。

是否有更有效的方法到达我想去的地方?

最佳答案

首先,json:transform-to-json 对我来说似乎非常优雅。但当然,这并不总是正确的答案。

我看到了三个您没有提到的选项。

  1. 服务器端转换 - REST 搜索支持服务器端转换,可在您执行 bulk read by query 时转换每个文档.这些服务器端转换可以生成您需要的任何 json。
  2. search extract-document-data - 这是提取文档部分的最简单方法。但是,如果您的文档是 json 以匹配您的 json 响应,这似乎是最好的。否则你会在你的 json 响应中得到 xml。 . .除非你同意。
  3. custom search snippets - 自定义搜索返回内容的另一种非常强大的方法

所有这些选项都不需要 eval 所需的特权,这是一件非常好的事情。由于 eval 允许在您的服务器上执行任意代码,因此它需要特殊权限并且应该非常小心地使用。使用 eval 之前的另外两个选项是 (1) custom xquery installed in an http server , 和 (2) REST extensions .

关于json - 将 MarkLogic EVAL REST 服务输出作为 JSON 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36132347/

相关文章:

php - 将 PHP DOM 传递给 XSLT

ios - Swift - JSON 字符串打印\n 而不是换行

java - 从 xml 字符串中提取元素

java - 如何在java中替换xml文件中的字符串而不将文件内容加载到内存中?

Spring MVC 3.1 RESTful Controller

.net - 使用 REST API 的 Paypal 快速结账

c# - WCF:设置了FaultContract,但未导致REST 服务中捕获FaultException<T>

ios - 使用 youtube api 通过 swift 3 获取视频列表

javascript - JSON.字符串化 : JSON string will be empty

添加到 JSON 响应的 Java JSON 反斜杠