在我的 nifi 流程中,我使用 EvaluateJsonPath 处理器读取了一个 json 对象。
json 对象如下所示:
[{"id":"8cbfa4dd-aib4-4f55-b10e-439c9d7f7b4c","parent_id":208,"dat_asset":{"name":"gpt4.pdf","scope":"group","source":"upload","filename":"gpt4.pdf","bucket_name":"psci-bis-1lg-jk","source_tags":["test"],"content_type":"application/pdf","opp_pid":null,"bucket_file_names":"resources/8cbfa4dd-aab4-4f55-b10e-439c9d7f7b4c/data_asset/gpt4.pdf","destFolderPid":""}}]
我想在属性级别将这个json对象转换为json字符串。 我的属性名称是 source_data 当前保存在 json 对象之上
我在apache nifi文档中找到了解决方案 - https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#escapejson
W需要使用
escapeJson
功能
描述:此函数通过使用 Json 字符串规则转义字符串中的字符来准备要插入到 JSON 文档中的主题。该函数正确转义引号和控制字符(制表符、反斜杠、cr、ff 等)
主题类型:字符串
参数:无参数
返回类型:字符串
示例:如果“消息”属性是“他没有说,“停止!””,则表达式
${message:escapeJson()}
将返回 'He didn’t say, \"Stop!\"'
使用
escapeJson
函数后,我的 json 字符串如下所示:
"[{\"id\":\"8cbfa4dd-aib4-4f55-b10e-439c9d7f7b4c\",\"parent_id\":208,\"dat_asset\":{\"name\":\"gpt4.pdf\",\"scope\":\"group\",\"source\":\"upload\",\"filename\":\"gpt4.pdf\",\"bucket_name\":\"psci-bis-1lg-jk\",\"source_tags\":[\"test\"],\"content_type\":\"application/pdf\",\"opp_pid\":null,\"bucket_file_names\":\"resources/8cbfa4dd-aab4-4f55-b10e-439c9d7f7b4c/data_asset/gpt4.pdf\",\"destFolderPid\":\"\"}}]"