请引导我使用适当的Nifi处理器组件将字符串转换为json的正确组件 .
Input是一个内容类型为text / plain的字符串
{ productName : "tv", locationName: " chennai"}
EvaluateJsonPath的输出仍然与我无法根据json路径评估json属性相同,因为输入的内容类型错误 .
{
productName : "tv",
locationName: " chennai"
}
注意:尝试使用SplitText,AttirtubesToJson处理器无法实现所需的转换 .
1 回答
这是因为输入数据无效JSON . 我在本地重新创建了这个流程,而
EvaluateJsonPath
的错误是哪个压缩到[flowfile]没有有效的JSON内容 . 处理器使用严格的验证器,您需要使用文本操作或正则表达式将此内容更新为以下内容:
完成此操作后(通过
ReplaceText
等),EvaluateJsonPath
处理器将正常工作 .另外,要清楚,
EvaluateJsonPath
旨在执行JSONPath表达式以将JSON值提取到flowfile属性 . 它不是为了将任意文本操作为JSON格式而设计的 .Update
没有将任意数据转换为JSON的通用过程 . 根据您提供的具体输入,
ReplaceText
的以下值将其转换为有效的JSON:搜索值:
(?<!\")(\w+)(?=[\s:])
替换值:
"$1"
替换战略:
Regex Replace
评估模式:
Entire text
如果您以其他方式获得无效的传入数据,则必须修改此过程 . 您可能对JSONLint之类的内容感兴趣,以验证和格式化您的传入数据 .