Jolt 分组和创建数组
Jolt grouping and creating array
希望你们一切都好。
我是 jolt 世界的新手,今天才开始研究。我很难将我的 json 结果转换为我应该发送的格式。
这是我得到的示例:
[
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 1,
"day": "Mon",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 1,
"day": "Tue",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 1,
"day": "Wed",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 1,
"day": "Thu",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 1,
"day": "Fri",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 0,
"day": "Sat",
"dzero": 0,
"Active": 0
},
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 0,
"day": "Sun",
"dzero": 0,
"Active": 0
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitoria",
"d0": 1,
"day": "Mon",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitoria",
"d0": 1,
"day": "Tue",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitoria",
"d0": 1,
"day": "Wed",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitoria",
"d0": 1,
"day": "Thu",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitoria",
"d0": 1,
"day": "Fri",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitoria",
"d0": 0,
"day": "Sat",
"dzero": 0,
"Active": 0
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitoria",
"d0": 0,
"day": "Sun",
"dzero": 0,
"Active": 0
}
]
我需要根据“un”、“uf”、“city”和“d0”的组合进行分组,并根据它们创建一个名为“windows”的数组其余字段(“day”、“dzero”、“Active”)。
如前所述,我的预期结果如下:
[
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 1,
"windows": [
{
"day": "Mon",
"dzero": 1,
"active": 1
},
{
"day": "Tue",
"dzero": 1,
"active": 1
},
{
"day": "Wed",
"dzero": 1,
"active": 1
},
{
"day": "Thu",
"dzero": 1,
"active": 1
},
{
"day": "Fri",
"dzero": 1,
"active": 1
},
{
"day": "Sat",
"dzero": 0,
"active": 0
},
{
"day": "Sun",
"dzero": 0,
"active": 0
}
]
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitória",
"d0": 0,
"windows": [
{
"day": "Mon",
"dzero": 0,
"active": 1
},
{
"day": "Tue",
"dzero": 1,
"active": 1
},
{
"day": "Wed",
"dzero": 0,
"active": 1
},
{
"day": "Thu",
"dzero": 1,
"active": 1
},
{
"day": "Fri",
"dzero": 1,
"active": 1
},
{
"day": "Sat",
"dzero": 0,
"active": 0
},
{
"day": "Sun",
"dzero": 0,
"active": 0
}
]
}
]
如果可以的话,真的帮大忙了。
先谢谢你了!
尝试以下使用此方法的规范:
- 创建复合键并将其添加到每个元素
- 将具有相同复合键的所有元素移动到一个 key/value 对中,其中键是复合键,值是具有该复合键值的元素数组。
- 对于每个数组中的第一个元素,将公共字段提升到每个元素之外(复合键字段除外)。对于数组中的每个元素,将 day、dzero 和 active 字段向下推入“windows”数组。
- 将每个复合键对象的每个元素放入一个通用的顶级数组中。
.
[
{
"operation": "modify-overwrite-beta",
"spec": {
"*": {
"compound": "=concat(@(1,un),' ',@(1,uf),' ',@(1,city),' ',@(1,d0))"
}
}
},
{
"operation": "shift",
"spec": {
"*": "@compound[]"
}
},
{
"operation": "shift",
"spec": {
"*": {
"0": {
"day": "&2.windows[0].day",
"dzero": "&2.windows[0].dzero",
"Active": "&2.windows[0].active",
"compound": null,
"*": "&2.&"
},
"*": {
"day": "&2.windows[&1].day",
"dzero": "&2.windows[&1].dzero",
"Active": "&2.windows[&1].active"
}
}
}
},
{
"operation": "shift",
"spec": {
"*": "[]"
}
}
]
希望你们一切都好。
我是 jolt 世界的新手,今天才开始研究。我很难将我的 json 结果转换为我应该发送的格式。
这是我得到的示例:
[
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 1,
"day": "Mon",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 1,
"day": "Tue",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 1,
"day": "Wed",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 1,
"day": "Thu",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 1,
"day": "Fri",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 0,
"day": "Sat",
"dzero": 0,
"Active": 0
},
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 0,
"day": "Sun",
"dzero": 0,
"Active": 0
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitoria",
"d0": 1,
"day": "Mon",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitoria",
"d0": 1,
"day": "Tue",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitoria",
"d0": 1,
"day": "Wed",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitoria",
"d0": 1,
"day": "Thu",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitoria",
"d0": 1,
"day": "Fri",
"dzero": 1,
"Active": 1
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitoria",
"d0": 0,
"day": "Sat",
"dzero": 0,
"Active": 0
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitoria",
"d0": 0,
"day": "Sun",
"dzero": 0,
"Active": 0
}
]
我需要根据“un”、“uf”、“city”和“d0”的组合进行分组,并根据它们创建一个名为“windows”的数组其余字段(“day”、“dzero”、“Active”)。 如前所述,我的预期结果如下:
[
{
"un": "RBA335",
"uf": "ES",
"city": "Cariacica",
"d0": 1,
"windows": [
{
"day": "Mon",
"dzero": 1,
"active": 1
},
{
"day": "Tue",
"dzero": 1,
"active": 1
},
{
"day": "Wed",
"dzero": 1,
"active": 1
},
{
"day": "Thu",
"dzero": 1,
"active": 1
},
{
"day": "Fri",
"dzero": 1,
"active": 1
},
{
"day": "Sat",
"dzero": 0,
"active": 0
},
{
"day": "Sun",
"dzero": 0,
"active": 0
}
]
},
{
"un": "RBA335",
"uf": "ES",
"city": "Vitória",
"d0": 0,
"windows": [
{
"day": "Mon",
"dzero": 0,
"active": 1
},
{
"day": "Tue",
"dzero": 1,
"active": 1
},
{
"day": "Wed",
"dzero": 0,
"active": 1
},
{
"day": "Thu",
"dzero": 1,
"active": 1
},
{
"day": "Fri",
"dzero": 1,
"active": 1
},
{
"day": "Sat",
"dzero": 0,
"active": 0
},
{
"day": "Sun",
"dzero": 0,
"active": 0
}
]
}
]
如果可以的话,真的帮大忙了。
先谢谢你了!
尝试以下使用此方法的规范:
- 创建复合键并将其添加到每个元素
- 将具有相同复合键的所有元素移动到一个 key/value 对中,其中键是复合键,值是具有该复合键值的元素数组。
- 对于每个数组中的第一个元素,将公共字段提升到每个元素之外(复合键字段除外)。对于数组中的每个元素,将 day、dzero 和 active 字段向下推入“windows”数组。
- 将每个复合键对象的每个元素放入一个通用的顶级数组中。
.
[
{
"operation": "modify-overwrite-beta",
"spec": {
"*": {
"compound": "=concat(@(1,un),' ',@(1,uf),' ',@(1,city),' ',@(1,d0))"
}
}
},
{
"operation": "shift",
"spec": {
"*": "@compound[]"
}
},
{
"operation": "shift",
"spec": {
"*": {
"0": {
"day": "&2.windows[0].day",
"dzero": "&2.windows[0].dzero",
"Active": "&2.windows[0].active",
"compound": null,
"*": "&2.&"
},
"*": {
"day": "&2.windows[&1].day",
"dzero": "&2.windows[&1].dzero",
"Active": "&2.windows[&1].active"
}
}
}
},
{
"operation": "shift",
"spec": {
"*": "[]"
}
}
]