New to Nifi and looking to see if we can convert results of SQL to JSON in the requested format.
SQL result is :

member_id field2 total tax ship partnum price qty
874450963 24017 173.95 0 0 015935966 42 1
874450963 24017 173.95 0 0 000756009 32 1
874450963 24017 173.95 0 0 012179293 99.95 1

使用100101进程的开箱即用结果如下所示:

[
  {
    "FIELD2": "24017",
    "MEMBER_ID": "874450963",
    "PARTNUM": "015935966",
    "PRICE": "42",
    "QUANTITY": "1",
    "TIMEPLACED": null,
    "TOTALPRODUCT": "173.95",
    "TOTALSHIPPING": "0",
    "TOTALTAX": "0"
  },
  {
    "FIELD2": "24017",
    "MEMBER_ID": "874450963",
    "PARTNUM": "000756009",
    "PRICE": "32",
    "QUANTITY": "1",
    "TIMEPLACED": null,
    "TOTALPRODUCT": "173.95",
    "TOTALSHIPPING": "0",
    "TOTALTAX": "0"
  },
  {
    "FIELD2": "24017",
    "MEMBER_ID": "874450963",
    "PARTNUM": "012179293",
    "PRICE": "99.95",
    "QUANTITY": "1",
    "TIMEPLACED": null,
    "TOTALPRODUCT": "173.95",
    "TOTALSHIPPING": "0",
    "TOTALTAX": "0"
  }
]

请求是将它们分组,并将partnum、价格和数量作为一个数组,如下所示:

[
  {
    "FIELD2": "24017",
    "MEMBER_ID": "874450963",
    "TIMEPLACED": null,
    "TOTALPRODUCT": "173.95",
    "TOTALSHIPPING": "0",
    "TOTALTAX": "0",
    "itemDetails": [
      {
        "PARTNUM": "015935966",
        "PRICE": "42",
        "QUANTITY": "1"
      },
      {
        "PARTNUM": "000756009",
        "PRICE": "32",
        "QUANTITY": "1"
      },
      {
        "PARTNUM": "012179293",
        "PRICE": "99.95",
        "QUANTITY": "1"
      }
    ]
  }
]

我们该怎么做呢?

谢谢!

搜索了论坛,没有看到任何类似的东西.

推荐答案

一种 Select 是通过使用具有以下规格的100工艺来执行该转换:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "&", // form arrays for the attibutes with keys other than below ones 
        "PARTNUM|PRICE|QUANTITY": "itemDetails[&1].&"
      }
    }
  },
  {
    "operation": "cardinality",
    "spec": {
      "*": "ONE", // pick only one of the repeating components 
      "itemDetails": "MANY"
    }
  },
  {
    "operation": "sort"
  }
]

Json相关问答推荐

将JSON输入子数组转换为字符串顺序列表输出

如何使用PlayWriter循环访问JSON对象

写入JSON文件的流

Vega-Lite(Deneb):难以将最小和最大值应用于折线图和文本标签以及线条末尾的点

使用JQ将对象数组转换为平面数组

将JSON数组组织到菜单中

基于 JSON 字段的 Jolt 条件标志

使用 JOLT 将日期格式转换为 JSON

如何修复通过在 tsconfig.json 文件中添加allowImportingTsExtensions引发的错误 TS5023?

使用 KQL 和外部 data() 运算符从 json 文件中提取信息

将 YAML 文件转换为 Python JSON 对象

.NET 对象最灵活的序列化是什么,但实现起来很简单?

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

错误未判断调用put(K, V)作为原始类型java.util.HashMap的成员

如何访问 JSON 对象数组的第一个元素?

从 VS 2017 Azure Function 开发中的 local.settings.json 读取值

如何安装 json gem - 无法构建 gem 原生扩展(mac 10.10)

NSManagedObject 属性值的 NSNull 处理

将多个值存储在json中的单个键中

如果键可能不存在,则从 Python dict 读取