我正在努力实现以下转变。然而,我的解决方案在最终数组中添加了不需要的空值。
转换需要为所有根
元素在child
array中移位名称。我创建了3个案例来说明这个问题。
{
"root": [
{
"child": [
{
"name": "John"
},
{
"name": "Frazer"
}
]
},
{
"child": [
{
"name": "Brandon"
},
{
"name": "Josef"
}
]
}
]
}
{
"NAMES": ["John,Frazer","Brandon,Josef"]
}
{
"root": [
{
"child": []
},
{
"child": [
{
"name": "Brandon"
},
{
"name": "Josef"
}
]
}
]
}
{
"NAMES": ["","Brandon,Josef"]
}
{
"root": [
{
"child": []
},
{
"child": []
}
]
}
{
"NAMES": ["",""]
}
编辑:< code >根数组将始终至少有1个元素。
当前的JOLT规范工作正常,除了子
是空数组的情况。它生成null
值,我试图指定一个空字符串(或任何硬编码的字符串值,如"NO_NAMES"
)
[
{
"operation": "shift",
"spec": {
"root": {
"*": {
"child": {
"*": {
"name": "NAMES[&3]"
}
}
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"NAMES": {
"*": "=trim"
}
}
},
{
"operation": "cardinality",
"spec": {
"NAMES": "MANY"
}
},
{
"operation": "default",
"spec": {
"NAMES": []
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"NAMES": {
"*": "=join(',',@0)"
}
}
}
]
您可以应用连续的转换修改-覆盖-beta,然后移位以确定列表中的逗号分隔元素(除非它们的大小为零,在这种情况下只会出现双引号),然后在列表中将它们连接起来,例如
[
{
"operation": "modify-overwrite-beta",
"spec": {
"root": {
"*": {
"child": { "*": "@(0,name)" },
"NAMES": "=join(',',@(1,child))"
}
}
}
},
{
"operation": "shift",
"spec": {
"root": {
"*": {
"NAMES": "&"
}
}
}
}
]
我正在尝试编写一个规范来使用jolt转换进行以下转换。我只对更改json中键的名称感兴趣,值应该保持不变。帮帮我。 输入Json: 预期输出:
我有json,其中包括多个产品,每个产品有多个不同的细节。使用jolt,我只需要输入json中的几个字段,遵循与输入json几乎相同的结构。我成功地迭代了产品,但是当我试图迭代每个产品变体时,我没有得到想要的输出。 输入. json 这里是Spec.json 我想要的预期输出。 我现在得到的实际输出。
如何使用jolt转换将平面JSON转换为嵌套JSON?我对JSON和jolt是新手。 输入: 预期输出: 编辑:我想在< code>SubFunds中添加一个新字段,但是新字段不在JSON文件中,它是计算字段,我可以按原样添加示例吗 并重命名字段:
我只想扁平化嵌套JSON的属性,但仍然适用于输入数组中的所有对象 很难将这三个字段放在一个规范中(类型字段、geo字段、properties字段)。我编写了规范来单独完成每一个操作,但是当我将这些规范组合在一个对象中使用时,它会产生错误的输出--对象数组真的把它搞砸了。 期望输出:
我正在尝试使用 JOLT 转换 JSON。此 JSON 由嵌套数组组成,我无法获得正确的转换。 这是原始的JSON。请注意,总会有一个带有单个对象的“结果”数组。此对象将始终包含一个“行”数组。我想要行数组中每个元素的字段。 这是我写的规范: 预期的 JSON 是: 然而,我的规范返回以下输出: 水平可能有问题。但是我想不出来。有人能帮忙吗?