如何将 JOLT return 键值作为列表,即使它具有单值或多值?
How to make JOLT return key value as a list even it has a single value or multi-value?
我想将 JSON 格式转换为另一种格式,因此我使用了 jolt。如果 jolt 有最好的,请推荐我。
当我映射这个对象时
{
"id": 1,
"username": "sd4s5d4",
"phone": "111",
"groups": [
{
"id": 1
},
{
"id": 2
}
]
}
预期输出正常,组的值作为列表返回
{
"id": 1,
"username": "sd4s5d4",
"phone": "111",
"groups": [ 1, 2 ]
}
但是当我映射这个对象时
{
"id": 5,
"username": "sd4s5d4",
"phone": "111",
"groups": [
{
"id": 1
}
]
}
它returns
{
"id": 5,
"username": "sd4s5d4",
"phone": "111",
"groups": 1
}
如何使最后输出中的组成为列表,即使它是一个项目。
想要的格式
{
"id": 5,
"username": "sd4s5d4",
"phone": "111",
"groups": [1]
}
规格
[
{
"operation": "shift",
"spec": {
"id": "id",
"username": "username",
"phone": "phone",
"groups": {
"*": {
"id": "groups"
}
}
}
}
]
只需将 "id": "groups"
替换为 "id": "groups.[&1]"
就足够了,顺便说一句,无需单独重复每个元素,只需使用与符号运算符替换为适当的替换,并在表示级别的整数值前面加上提供给目标密钥(}
运算符的 e.g.number,同时到达相关密钥)。因此,将 "id": "groups.[&1]"
转换为 "id": "&2.[&1]"
,并将 "*": "&",
用于其他元素,例如
[
{
"operation": "shift",
"spec": {
"*": "&",
"groups": {
"*": {
"id": "&2.[&1]"
}
}
}
}
]
我想将 JSON 格式转换为另一种格式,因此我使用了 jolt。如果 jolt 有最好的,请推荐我。
当我映射这个对象时
{
"id": 1,
"username": "sd4s5d4",
"phone": "111",
"groups": [
{
"id": 1
},
{
"id": 2
}
]
}
预期输出正常,组的值作为列表返回
{
"id": 1,
"username": "sd4s5d4",
"phone": "111",
"groups": [ 1, 2 ]
}
但是当我映射这个对象时
{
"id": 5,
"username": "sd4s5d4",
"phone": "111",
"groups": [
{
"id": 1
}
]
}
它returns
{
"id": 5,
"username": "sd4s5d4",
"phone": "111",
"groups": 1
}
如何使最后输出中的组成为列表,即使它是一个项目。 想要的格式
{
"id": 5,
"username": "sd4s5d4",
"phone": "111",
"groups": [1]
}
规格
[
{
"operation": "shift",
"spec": {
"id": "id",
"username": "username",
"phone": "phone",
"groups": {
"*": {
"id": "groups"
}
}
}
}
]
只需将 "id": "groups"
替换为 "id": "groups.[&1]"
就足够了,顺便说一句,无需单独重复每个元素,只需使用与符号运算符替换为适当的替换,并在表示级别的整数值前面加上提供给目标密钥(}
运算符的 e.g.number,同时到达相关密钥)。因此,将 "id": "groups.[&1]"
转换为 "id": "&2.[&1]"
,并将 "*": "&",
用于其他元素,例如
[
{
"operation": "shift",
"spec": {
"*": "&",
"groups": {
"*": {
"id": "&2.[&1]"
}
}
}
}
]