我正在尝试使用Jolt transformation转换一个JSON,在这里寻找一些输入。我正在尝试根据属性值进行过滤。
我的目标是获得一个数组,其中只包含动作为“remove”的项目。
这是我的输入和预期输出:
输入:
{
"id": 11,
"item": [
{
"id": "11_1",
"action": "add",
"item": [
{
"id": "11_1_1",
"action": "add",
"item": [
{
"id": "11_1_1_1",
"action": "remove"
}
]
},
{
"id": "11_1_2",
"action": "remove",
"item": [
{
"id": "11_1_2_1",
"action": "remove"
}
]
}
]
}
]
}
预期产出:
[
{
"id": "11_1_1_1",
"action": "remove"
},
{
"id": "11_1_2",
"action": "remove"
},
{
"id": "11_1_2_1",
"action": "remove"
}
]
你能帮我写一个简单的规范吗?
您可以考虑另一个库Josson,一个简单的语句就可以完成这项工作。该函数甚至支持未知和无限数量的路径级别。
https://github.com/octomix/josson
反序列化
Josson josson = Josson.fromJsonString(
"{" +
" \"id\": 11," +
" \"item\": [" +
" {" +
" \"id\": \"11_1\"," +
" \"action\": \"add\"," +
" \"item\": [" +
" {" +
" \"id\": \"11_1_1\"," +
" \"action\": \"add\"," +
" \"item\": [" +
" {" +
" \"id\": \"11_1_1_1\"," +
" \"action\": \"remove\"" +
" }" +
" ]" +
" }," +
" {" +
" \"id\": \"11_1_2\"," +
" \"action\": \"remove\"," +
" \"item\": [" +
" {" +
" \"id\": \"11_1_2_1\"," +
" \"action\": \"remove\"" +
" }" +
" ]" +
" }" +
" ]" +
" }" +
" ]" +
"}");
转型
JsonNode node = josson.getNode(
"cumulateCollect(item[action='remove']*.field(item:), item).flatten(1)");
System.out.println(node.toPrettyString());
输出
[ {
"id" : "11_1_2",
"action" : "remove"
}, {
"id" : "11_1_1_1",
"action" : "remove"
}, {
"id" : "11_1_2_1",
"action" : "remove"
} ]
>
让我们通过在第一个规范中遍历树时确定案例是“item”
与else case(“*”)
来展平JSON。
并通过它们的操作
名称标记单个数组
然后选择remove
数组的对象
[
{
"operation": "shift",
"spec": {
"item": {
"*": {
"item": {
"*": {
"item": {
"*": {
"*": "@(1,id)[&1].&"
}
},
"*": "j[&1].&"
}
},
"*": "i[&1].&"
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"*": "@(0,action)"
}
}
},
{
"operation": "shift",
"spec": {
"remove": {
"*": ""
}
}
}
]
操场现场的演示(http://jolt-demo.appspot.com/)是
我正在尝试使用Jolt transformation转换一个JSON,在这里寻找一些输入。我试图通过属性的内部值进行过滤。 我的目标是获得一个只包含类型名为' xx '的项目的数组。 这是我的输入和预期输出: 输入: 预期产出: 你能帮我写一个简单的规范吗?
我正在尝试使用Jolt transformation转换一个JSON,在这里寻找一些输入。我试图通过属性的内部值进行过滤。 我的目标是得到一个数组,它只包含类型为“xx”的项目。但不是所有的项目对象,只有一些字段 这是我的输入和预期输出: 输入: 预期产出: 你能帮我写一个简单的规范吗?
我想使用JOLT转换做两件事: 过滤名为 myArray 的数组中的元素,以便仅保留具有“v_518”属性的元素 过滤掉除“v_518”和“LFDN”之外的其余元素的所有属性 输入: 期望输出: 到目前为止,我尝试了什么,但没有按预期工作: 我尝试使用http://jolt-demo.appspot.com/#andrewkcarter2中的示例,但我不知道如何做到这一点。
我正在尝试使用 Jolt 转换来转换 Json,在这里寻找一些输入。我正在尝试过滤一个键,该键是另一个属性的值。这是我的输入和预期输出 我看到的输出是 我试过的规格是 但是我没有得到预期的输出。我也尝试了一些其他组合,但未能获得正确的输出。有人能帮忙吗?
我需要使用JOLT将下面的输入JSON转换成下面列出的格式。链接是通过第一个数组元素的deps.name与第二个数组元素的spec.name来完成的。我对链接一无所知。谢谢你的帮助。 输入json 预期的输出格式
我正在尝试将下面的JSON转换为名称值对: 应为输出JSON: 我使用了以下jolt规范,但是< code>RecordType元素的转换不符合预期: 颠簸规格 : 如何将其转换为所需的格式?