如何解决如何在MarkLogic Data Hub快速入门中映射对象和数组?
在MarkLogic Data Hub快速入门中,我已经配置了一个客户实体和一个地址实体。地址实体使用1..n关系嵌入到客户中。
我为客户实体创建了一个映射:
当我单击“测试”按钮时,街道将按预期方式映射(黄色标记)。 但是,当我在客户文档上运行映射步骤时,地址属性的映射无法按我的预期进行。
这是运行映射后在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
快速入门映射步骤
因此,JSON数组将被正确展平
随着您对DHF流程和开发步骤更加满意,可以手动定义映射定义并快速站起来DHF。
,我用于地址的映射现在可以正常工作了。在QuickStart UI中更改映射与在映射步骤运行中使用的映射之间似乎存在某种滞后。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。