我正在寻找Jolt的帮助。我正式是一名新手,试图了解Jolt是否足以在我们的解决方案中使用。我似乎无法获得我期望的以下输出。
我想知道是否有人可以帮助我,看看这个模板是否能够满足我们对相同结构的其他需求。另外,如果有人对Jolt建议阅读最好/更好,那么我也很高兴听到这一消息。
简而言之,我正在尝试使用JOLT来满足以下需求:
以下是我需要转换的输入示例:
"AL1": {
"0": {
"AllergenCodeMnemonicDescription": {
"1": {
"Text": "ASPIRIN",
"ID": "TEST1"
},
"2": {
"Text": "TYLENOL",
"ID": "TEST2"
}
},
"SetIDAL1": "1"
},
"1": {
"AllergenCodeMnemonicDescription": {
"1": {
"Text": "ADVIL"
}
},
"SetIDAL1": "2"
}
}
}
我当前使用的规格似乎使我很接近。但是,我无法将数组提升到一个水平以删除0:1,也无法解决我想要将SetIDAL1值放置在新创建的数组对象内的事实,而是使它成为自己的数组对象。我尝试了其他各种选择,这些选择只会使我走得更远。对于解决方案和输入/指导的任何帮助,以及解决此问题的一般“智能方式”。
不幸的是,我没有我尝试过的先前工作的副本,该副本将对所有组执行匹配并按预期映射它们。我开始尝试匹配输入下方的每个单独的0/1对象,以尝试查看是否可以正确地“掩埋” SetIDAL,但无济于事。我真的不想为每个级别编写代码,但希望有人可以为我解决“手头的问题”的解决方案。
[
{
"operation": "shift",
"spec": {
"AL1": {
"0": {
"AllergenCodeMnemonicDescription": {
"@": "AL1.[].AllergenCodeMnemonicDescription.[]"
},
"SetIDAL1": "AL1.[].SetIDAL1"
},
"1": {
"AllergenCodeMnemonicDescription": {
"*": "AL1.[].AllergenCodeMnemonicDescription.[]"
},
"SetIDAL1": "AL1.[].SetIDAL1"
}
}
}
}
]
这是我得到的输出。我认为此后可能还需要再进行一次转换,以某种方式使“ 1” /“ 2”电平“再次升高”。但是我似乎无法如前所述将SetIDAL1放在正确的位置。
{
"AL1" : [ {
"AllergenCodeMnemonicDescription" : [ {
"1" : {
"Text" : "ASPIRIN",
"ID" : "TEST1"
},
"2" : {
"Text" : "TYLENOL",
"ID" : "TEST2"
}
} ]
}, {
"SetIDAL1" : "1"
}, {
"AllergenCodeMnemonicDescription" : [ {
"Text" : "ADVIL"
} ]
}, {
"SetIDAL1" : "2"
} ]
}
这是我需要的输出:
{
"AL1": [
{
"AllergenCodeMnemonicDescription": [
{
"Text": "ASPIRIN",
"ID": "TEST1"
},
{
"Text": "TYLENOL",
"ID": "TEST2"
}
],
"SetIDAL1": "1"
},
{
"AllergenCodeMnemonicDescription": [
{
"Text": "ADVIL"
}
],
"SetIDAL1": "2"
}
]
}
答案 0 :(得分:0)
由于索引从1开始(而不是0)从每个Allergen数组的第一个元素获取空值,因此必须在最后将其删除(不确定是否有更好的方法来执行此操作),但是此规范将做到这一点:
[
{
"operation": "shift",
"spec": {
"AL1": {
"*": {
"AllergenCodeMnemonicDescription": {
"*": {
"Text": "AL1.[&3].AllergenCodeMnemonicDescription.[&1].&",
"ID": "AL1.[&3].AllergenCodeMnemonicDescription.[&1].&"
}
},
"SetIDAL1": "AL1.[&1].&"
}
}
}
},
{
"operation": "remove",
"spec": {
"AL1": {
"*": {
"AllergenCodeMnemonicDescription": {
"0": ""
}
}
}
}
}
]