我们正在用目前的Jolt来连接两个字符串,当我们有更多的加法时,如何以顺序加法的方式

输入:

[
  {
    "policy": "Name",
    "PAFrstNm": "John"
  },
  {
    "PALastNm": "Jammy",
    "policy": "Name"
  },
  {
    "PAMiNm": "T",
    "policy": "Name"
  },
  {
    "policy": "Name",
    "PPFrstNm": "sam"
  },
  {
    "policy": "Name",
    "PPLastNm": "jim"
  },
  {
    "policy": "Name",
    "PPMiNm": "E"
  },
  {
    "policy": "Name",
    "PPFrstNm1": "jun"
  },
  {
    "PPLastNm1": "san",
    "policy": "Name"
  },
  {
    "PPMiNm1": "e",
    "policy": "Name"
  }
]

当前震荡:

[
  { // group by LastN/FrstN removed key names 
    "operation": "shift",
    "spec": {
      "*": {
        "*LastN*": {
          "@": "@2,policy.&(1,1)fullna&(1,2)"
        },
        "*FrstN*": {
          "@": "@2,policy.&(1,1)fullna&(1,2)"
        }
      }
    }
  },
  { // concatenate the components of the arrays respectively 
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "*ful*": "=join(' ',@(1,&))"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "@": "[#2].&",
          "$1": "[#2].policy" // deliver back the policy attribute to those objects
        }
      }
    }
  }
]

预期输出: PAfullnam:名字+Mi +姓氏

[
  {
    "PAfullnam": "John T Jammy",
    "policy": "Name"
  },
  {
    "PPfullnam": "sam E jim ",
    "policy": "Name"
  },
  {
    "PPfullnam1": "jun e san ",
    "policy": "Name"
  }
]

Current output:

[
  {
    "PAfullnam": "John Jammy T",
    "policy": "Name"
  },
  {
    "PPfullnam": "sam jim E",
    "policy": "Name"
  },
  {
    "PPfullnam1": "jun san e",
    "policy": "Name"
  }
]

Firstname + last name

推荐答案

您可以添加此作为第二个规格

  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "0|2|1": "&2.&1.[#1]"
        }
      }
    }
  }

以便通过它们在所形成的数组中的索引对这些值进行排序.因此,使用以下规范:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*LastN*|*FrstN*|*MiN*": "@1,policy.&(0,1)fullna&(0,2)"
          // the order of the part above is not important
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "0|2|1": "&2.&1.[#1]"
        }
      }
    }
  },
  { 
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "*ful*": "=join(' ',@(1,&))"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "@": "[#2].&",
          "$1": "[#2].policy" 
        }
      }
    }
  }
]

Json相关问答推荐

使用Powershell脚本将配置信息块添加到json文件

如何在JSONata对象中迭代并向数组添加新字段?

使用 JSON 和相对日期设置日历视图中 SharePoint 列表项的背景 colored颜色 格式

如何使用 jq 在连续的 json 记录流上调用操作

NiFi 使用嵌套数组将 avro 转换为 JSON 数组格式

在 PostgreSQL 中 Select 分层 JSON 作为表

如何实现一个通用的 serde_json::from_str

如何用 Xidel 正确读取这个 JSON 文件?

Angularjs访问本地json文件

Jackson 的@JsonView、@JsonFilter 和 Spring

谷歌浏览器不允许我放置断点

对象序列化为 JSON(使用 Gson).如何在 UpperCamelCase 中设置字段名称?

使用 JSONObject 在 Java 中为以下 struct 创建嵌套 JSON 对象?

如何将 LinkedTreeMap 转换为 gson JsonObject

消息通知产生此内容无法显示

我们可以使用 JSON 作为数据库吗?

如何自动修复无效的 JSON 字符串?

Golang struct 的 XML 和 JSON 标签?

Jackson JSON序列化,通过级别定义避免递归

如何对 jq 中的 map 数组中的值求和?