如何在 Apache Nifi 中按字符将 json 字符串值拆分为一些子字符串
How to split a json string value by character into some substrings in Apache Nifi
我有一个 json 文件,如下图所示,我想用一个字符(例如逗号)拆分键 'adress' 的值:
{
"id": 123,
"name": "James",
"adress": "Oxford Street,21,London,England"
}
并将其转换为以下内容(-> 用逗号将地址字段拆分为这些字段):
{
"id": 123,
"name": "James",
"street": "Oxford Street",
"house number": "21",
"city": "London",
"country": "England"
}
我在互联网上找到了一个解决方案 (http://ostack.cn/?qa=94733/),其中有人将他们的属性分成 2 key/values(使用 jolt-processor),它对我也有效,但对更多人无效比这个分裂。
处理器可以是 'Jolt Transform' 或任何我可以用来编辑 json 的处理器,就像上面的模式一样。
感谢卢卡斯的帮助
您可以在 JoltTransformJSON 中使用 split 函数以及 modify-overwrite-beta 规范处理器如
[
{
"operation": "shift",
"spec": {
"@(0,adress)": "adr",
"*": "&"
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"adr": "=split(',', @(1,&))",
"street": "@(1,adr[0])",
"house number": "@(1,adr[1])",
"city": "@(1,adr[2])",
"country": "@(1,adr[3])"
}
},
{
"operation": "remove",
"spec": {
"adr": "",
"adress": ""
}
}
]
其中 shift 规范代表生成要通过使用 split 和 remove[=24= 进行处理的数组 (adr
) ] 用于删除不需要的键值对。
我有一个 json 文件,如下图所示,我想用一个字符(例如逗号)拆分键 'adress' 的值:
{
"id": 123,
"name": "James",
"adress": "Oxford Street,21,London,England"
}
并将其转换为以下内容(-> 用逗号将地址字段拆分为这些字段):
{
"id": 123,
"name": "James",
"street": "Oxford Street",
"house number": "21",
"city": "London",
"country": "England"
}
我在互联网上找到了一个解决方案 (http://ostack.cn/?qa=94733/),其中有人将他们的属性分成 2 key/values(使用 jolt-processor),它对我也有效,但对更多人无效比这个分裂。
处理器可以是 'Jolt Transform' 或任何我可以用来编辑 json 的处理器,就像上面的模式一样。
感谢卢卡斯的帮助
您可以在 JoltTransformJSON 中使用 split 函数以及 modify-overwrite-beta 规范处理器如
[
{
"operation": "shift",
"spec": {
"@(0,adress)": "adr",
"*": "&"
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"adr": "=split(',', @(1,&))",
"street": "@(1,adr[0])",
"house number": "@(1,adr[1])",
"city": "@(1,adr[2])",
"country": "@(1,adr[3])"
}
},
{
"operation": "remove",
"spec": {
"adr": "",
"adress": ""
}
}
]
其中 shift 规范代表生成要通过使用 split 和 remove[=24= 进行处理的数组 (adr
) ] 用于删除不需要的键值对。