如何使用Apache NiFi移除JSON中seriesID条目外的大括号?
移除seriesID条目外的大括号解决方案
你给出的JSON片段里,每个seriesID条目被}, {分隔,下面给你几个可行的解决方法:
方法一:用Replace Text处理器(正则替换)
直接匹配分隔的大括号及周围的空白内容,按需替换:
- 匹配正则:
\s*}, {\s* - 替换为:
\n(保留每个seriesID单独一行)或直接留空(让条目连续)
如果要把这些条目整理成合法的JSON数组,可以分两步操作:
- 给原片段开头补
[、结尾补],让它变成合法的JSON数组结构 - 用上述正则把
}, {替换为,\n,让数组内的对象用逗号分隔
方法二:用Jolt转换提取seriesID值
先把原片段补成合法的JSON数组(前后加[和]),再用Jolt的shift操作提取所有seriesID的值,自动去掉外层对象的大括号。Jolt规范如下:
[ { "operation": "shift", "spec": { "*": { "seriesID": "seriesIDs[]" } } } ]
转换后会得到一个包含所有seriesID值的数组,示例输出:
{ "seriesIDs": [ "CUUR0000SA0", "CUSR0000SA0", "LNS14000000", ... ] }
方法三:命令行文本处理(sed)
如果是在命令行环境处理,用sed命令全局替换掉分隔大括号:
sed 's/}, {//g' 你的输入文件名.json > 输出文件名.json
内容的提问来源于stack exchange,提问作者Dorien Williams
相关产品推荐
相关产品推荐

