【发布时间】:2020-05-27 17:51:59
【问题描述】:
使用GenerateTableFetch、ExecuteSQL、SplitAvro 和ConvertAvroToJSON 处理器的序列,我正在从具有以下内容的 MySql 视图中获取 JSON 字段:
“使用了 7 分制(1=\u201C 根本没有\u201D 到 7=\u201C 非常\u201D)..”
如果我在队列中查看文件的内容并选择选项formatted(而不是original),我会得到:
“使用了 7 分制(1=“一点也不”到 7=“非常”)……”
这个未转义的字符串是我想存储在 NoSQL 数据库中的。 这个内置的 NIFI 查看器是否使用了我可以使用的功能?
我之所以问这个问题是因为在流程的后期,我将 JSON 包装在一个 xml 标记中,以便使用 XSLT 样式表将其转换为 XML。但我在转换后得到了 unicode 字符,并想取回原始的未转义 JSON(在我将其存储在 NoSQL 数据库中之前)。
【问题讨论】:
-
我试图避免使用 FlowFile 属性。我想处理内容。
-
\u201C是字符串中的 json 编码字符,表示“。因此 json 格式的 nifi-viewer 将其解码以显示。 -
@daggett 谢谢,从这个评论和安迪的回答来看,方向似乎是我需要自己提供转换映射......还有许多其他出现的引号和破折号由于作者的要求,我需要保留。
-
但这是一个正确的 json 值。为什么需要更换它?你打算将 json 存储到 nosql 还是这个 json 中的文本值?
-
@daggett 字符串
\u201C显示在 NoSQL 内容中...我正在使用来自 stackoverflow.com/questions/13007280/… 的 XSLT 转换(支持 null 的转换),我怀疑它正在转换 unicode 序列到带有字符 \u201C 的文字字符串,否则 NoSQL db 将能够正确地对其进行转义
标签: json unicode escaping apache-nifi