在字符串内更改的 flink "equal"符号



我有一个非常奇怪的问题。我在输入中有一个json,其中有一些字段定义在pojo中。当我看到输出时,=符号被改变了:

原始字符串:

"body": "/opensearch/OpenSearch?searchTerms=productType:OL_2_WFR___%20OR%20OL_2_WRR___%20OR%20SL_2_WST___%20OR%20SR_2_WAT___&count=10"

flink产生的字符串:

"body": "/opensearch/OpenSearch?searchTermsu003dproductType:OL_2_WFR___%20OR%20OL_2_WRR___%20OR%20SL_2_WST___%20OR%20SR_2_WAT___u0026countu003d10"
有人知道如何解决这个问题吗?

他们不是,不是真的。

根据JSON规范,如果字节0x09(ASCII制表符)出现在JSON字符串中,或者如果字节序列0x5C 0x74(字符t)出现,或者如果序列0x5C 0x75 0x30 0x30 0x30 0x39出现(字符u0009),它们都意味着完全相同的东西:字符串中有一个字符,它是制表符。

如果你有这个问题,你的JSON库坏了。找个更好的。

很可能你的JSON库没有损坏,相反,要么[A]你正在比较原始JSON,要么试图使用正则表达式从原始JSON中检索信息。别再这样做了,这将是一场没完没了的"怪异"游行,因为你不应该这样做。有很多种方法可以让不同的JSON字符串表示相同的东西,或者[B]这里没有问题,你可以继续;您只是看到了差异,并且可以理解地认为这里存在差异,或者它会导致问题。

假设你不做一些愚蠢的事情,比如试图用正则表达式解析JSON或比较原始JSON,并假设这意味着与它的内容相关的任何事情,这将不是一个问题.

具体来说,u003d=相同的无论如何处理这个JSON决定用另一个意味着相同事情的序列替换一个序列,这是一个允许的操作。

相关内容

  • 没有找到相关文章

最新更新