微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在MarkLogic Data Hub快速入门中映射对象和数组?

如何解决如何在MarkLogic Data Hub快速入门中映射对象和数组?

在MarkLogic Data Hub快速入门中,我已经配置了一个客户实体和一个地址实体。地址实体使用1..n关系嵌入到客户中。

我为客户实体创建了一个映射:

enter image description here

当我单击“测试”按钮时,街道将按预期方式映射(黄色标记)。 但是,当我在客户文档上运行映射步骤时,地址属性的映射无法按我的预期进行。

这是运行映射后在FINAL数据库生成的JSON,包括输入的JSON(带有地址)作为附件:

{
  "envelope": {
    "headers": {...}
    "triples": [],"instance": {
      "info": {...},"Kunde": {
        "KundenId": "AMP_01655c5ea353001c223d3A6C10BE5F0D","AmparexCustomerId": "01655c5ea353001c223d3A6C10BE5F0D","Anrede": "salutation_mister","Name": "XXXXXX","Vorname": "Edgar"
      }
    },"attachments": {
      "envelope": {
        "headers": {...},"triples": [],"instance": {
          "ID": "01655c5ea353001c223d3A6C10BE5F0D","Firstname": "Edgar",...
          "addresses": [
            {
              "Street": "Häldenstr. 7","Zip": "XXXX",....

我期望实体对象在数组“ Adressen”(德语为“ addresses”)中包含这样的地址:

"Kunde": {
    "KundenId": "AMP_01655c5ea353001c223d3A6C10BE5F0D","Name": "XXXXX","Vorname": "Edgar","Adressen" : [{
        "Strasse" : "Häldenstr. 7","Postleitzahl" : "XXXX"
    }]
}

我是否误解了数组或子对象的映射如何工作? 还是我在运行映射时犯了一个有效的错误,但使用“测试”按钮却没有?

解决方法

在映射包含嵌套实体的实体定义时(address属性是Address实体中的Person实体),请确保在正确的XPath上下文中使用该属性(在我的示例中为/

输入JSON

enter image description here

快速入门映射步骤

enter image description here

因此,JSON数组将被正确展平

enter image description here

随着您对DHF流程和开发步骤更加满意,可以手动定义映射定义并快速站起来DHF。

,

我用于地址的映射现在可以正常工作了。在QuickStart UI中更改映射与在映射步骤运行中使用的映射之间似乎存在某种滞后。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?