首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >apache-nifi中关于unescapeJson的问题

apache-nifi中关于unescapeJson的问题
EN

Stack Overflow用户
提问于 2017-01-08 06:19:49
回答 1查看 1.9K关注 0票数 0

我正在使用apache来转换一些数据。

我有一个字符串:他没有说,\“S\”顶!“,unescapeJson()给了我这个结果:他没有说”S“顶!”

是那么回事吗?我的预期结果是,他没有说“S\”顶!

如果函数是这样设计的,那么我如何才能得到预期的结果。

示例:

ReplaceText的输入输出

ReplaceText设置

GetFile处理器刚刚读取了一个包含内容的文件:,他没有说,\“S\\”顶部!\“

EN

回答 1

Stack Overflow用户

发布于 2017-01-09 06:14:11

通过将ReplaceText 替换值属性更改为${'$1'},解决方法似乎是可行的。在我的示例中,这产生了所需的输出He didn't say, "S\"top!"

我还不完全理解为什么,但我认为这与将搜索的输出作为替换的正则表达式进行评估有关,其中反斜杠是在应用unescapeJson()之前计算的,因此它最终是多余的。例如,如果将替换值设置为仅为$1,则不会发生这种情况。

更新

我上面的顺序错了,决议的顺序如下:

  1. 搜索返回:He didn’t say, \"S\\\"top!\"
  2. 表达式语言计算${'$1':unescapeJson()}为:He didn’t say, "S\"top!"
  3. 替换结果是:He didn’t say, "S"top!"

因此,unescapeJson()正在按预期工作,您没有预料到的行为是,剩余的反斜杠作为String::replaceAll()的工件丢失在替换中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41530073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档