如何在属性级别将Json转换为字符串?

问题描述 投票:0回答:1

在我的 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 对象之上

json apache-nifi
1个回答
0
投票

我在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\":\"\"}}]"
© www.soinside.com 2019 - 2024. All rights reserved.