Apache nifi 访问Nifi FreeFormTextRecordSetWriter中的数组值
我正在尝试使用FreeFormTextRecordSetWriter访问Json中的数组值 输入数据: {“数据”:[[“15808600000”,“67.2”],“项目ID”:5917,“标签”:“xxx”,“类型”:“堆叠元素”} 期望输出 {“data1”:“15808600000”,“data2”:“67.2”,“itemid”:5917,“label”:“xxx”,“type”:“stacked_element”}Apache nifi 访问Nifi FreeFormTextRecordSetWriter中的数组值,apache-nifi,Apache Nifi,我正在尝试使用FreeFormTextRecordSetWriter访问Json中的数组值 输入数据: {“数据”:[[“15808600000”,“67.2”],“项目ID”:5917,“标签”:“xxx”,“类型”:“堆叠元素”} 期望输出 {“data1”:“15808600000”,“data2”:“67.2”,“itemid”:5917,“label”:“xxx”,“type”:“stacked_element”} 使用Nifi表达式语言可以做到这一点吗?我认为FreeFormText
使用Nifi表达式语言可以做到这一点吗?我认为FreeFormTextRecordSetWriter当前不允许访问嵌套字段,请随意添加此功能,或者使用FreeFormTextRecordPathWriter来启用记录路径表达式 我假设如果您正在尝试FreeFormTextRecordSetWriter,那么您知道
数据数组中总会有两个条目。如果是这种情况,由于输入/输出是有效的JSON,因此如果流文件中有一个对象,则可以使用JoltTransferMJSON和以下规范:
[
{
"operation": "shift",
"spec": {
"data": {
"*": {
"0": "data1",
"1": "data2"
}
},
"*": "&"
}
}
]
如果文件中有多个JSON对象,则可以将JoltTransferMRecord与JSontereReader和JsonRecordSetWriter以及上述规范一起使用
如果不知道数组中有多少个元素,仍然可以使用以下规范将它们拆分,但请注意,第一个元素的索引为0而不是1(因此data0
而不是data1
):
UpdateRecord是另一个选项,但我相信您仍然需要知道数组中有多少个元素
[
{
"operation": "shift",
"spec": {
"data": {
"*": {
"*": "data&"
}
},
"*": "&"
}
}
]