json - Nifi - 将根 json 元素拆分为不同的流文件
问题描述
我有一个数据源正在发送包含各种键值对的 json 格式的消息。每条消息中包含哪些键并不一致。但是,我需要将每个单独的键值对拆分到自己的流文件中,并能够提取键名
这样做的原因是,我需要使用键名执行表查找,以生成新的数据格式,包括值
例如,如果我收到这样的消息:
{
"key1": 123,
"Key2": 4234,
"Key3": 789
}
我希望输出是三个单独的流文件
{
"key1": 123
}
{
"Key2": 4234
}
{
"Key3": 789
}
我还需要根据这些单独的流文件知道如何提取密钥的名称
解决方案
正确的,
你需要一个 jolttransformer 来做这个
颠簸规格:
[
{
"operation": "shift",
"spec": {
"*": {
"$": "[#2].Key",
"@": "[#2].Value"
}
}
}
]
N
**接下来,您将输出拆分为$。*。
并使用 EvaluateJson 评估键和值,然后您可以随意使用 Lookup 中的属性。
这将是 Jolt Trans 的输出:
[ {
"Key" : "key1",
"Value" : 123
}, {
"Key" : "Key2",
"Value" : 4234
}, {
"Key" : "Key3",
"Value" : 789
} ]
推荐阅读
- pandas - 将表格 pandas DataFrame 转换为嵌套的 pandas DataFrame
- javascript - JS 异步不起作用 | 由于背景图像导致的 LCP 问题,这是用 JS 设置的
- javascript - 2 级子节点的 Javascript 样式更改
- google-cloud-platform - 具有敏感范围的 Google Oauth 同意屏幕:本地主机测试需要第二个 GCP 应用程序?
- ios - React Native iOS 原生模块传参
- javascript - 反应更新状态中的元素
- java - 如何检查字符串是否为数字,例如“1”是但“x”不是
- c++ - Istream 输入检查
- node.js - 如何获取当前文档中的最后一个字段对象_id作为父ID?
- amazon-web-services - UnauthorizedOperation on terraform 适用。如何运行以下 AWS 配置?