MarkLogic 8 - 休息端点返回 XML 即使我们指定 JSON

MarkLogic 8 - Rest Endpoint Returning XML even though we specify JSON

http://localhost/v1/documents?format=json&uri=%2Fdocs%2F1234.json

看起来 URL 给我们的是 XML 而不是 JSON,这导致了一些问题。

我相信这在我们升级到 Marklogic 8 后就开始了。

您可以看到我们正在指定 json,这似乎是正确的,基于此: https://docs.marklogic.com/REST/GET/v1/documents

如何将此内容发送到 return JSON?

在 MarkLogic 6 和 7 中,JSON 文档在内部表示为 XML,这是这些版本支持的标准分层文档格式。通过 REST API 的访问对于读取和写入是透明的 JSON,只是在底层有所不同。在 MarkLogic 8 中,JSON 是一种原生格式,因此转换消失了。 MarkLogic 的支持团队有一篇关于 how JSON is handled in versions 6, 7, and 8 的文章——应该对您有所帮助。

您也可以使用 MLCP 有效地完成相同的操作,另外一个好处是您可以更轻松地重复迁移,可以选择针对不同的目标环境或数据库,and/or 如果您愿意,可以添加额外的调整。使用存档模式导出数据库文件,然后使用此转换重新导入:

https://github.com/marklogic/demo-cat/blob/develop/src/transform/to-json.xqy

我们这样做是为了将 demo-cat 从 MarkLogic 7 内部迁移到 8。我们采取的步骤记录在此处:

https://github.com/marklogic/demo-cat/blob/develop/migration.md

HTH!