基本上,当JSON接收字符串时,它会将'
或&
之类的内容转换为Unicode值。我正在尝试将JSON值存储起来,当它稍后再出现时,将其与JSON值进行比较。但是,当我发送“Let's Party
”之类的内容时,它会返回“Let\u0027s Party
”
基本上,我希望在存储或发送之前将所有JSON Unicode转换为特定的Unicode值。
答案 0 :(得分:1)
我希望将所有JSON Unicode转换为其特定的Unicode值
我怀疑你想将所有字符转换为\u
- 转义。在这种情况下,Let's party
将成为\u004c\u0065\u0074\u0027\u0073\u0020\u0050\u0061\u0072\u0074\u0079
。
撇号或&符号没有什么特别之处,这意味着它必须用JSON编码,尽管有些编码器仍然这样做(它可以在另一个包装器上下文中使用JSON,其中这些字符是特殊)。
看起来您想要匹配另一个编码器产生的确切输出。为此,您必须确定该编码器决定转义的完整字符集,并更改或配置您自己的JSON编码器以匹配该字符。对于某些可能像执行字符串替换一样简单的字符:例如,'
只能作为字符串文字的一部分合法地出现在JSON中,在编码后用\u0027
替换是安全的。但这很丑陋而且很脆弱。
依赖JSON序列化程序的确切编码选择通常是个坏主意。 JSON值{"a": "'", "b": 0.0}
和{"b": 0, a: "\u0027"}
表示相同的数据,通常应视为相等。为了进行比较,通常最好解析JSON并逐个检查内容,或者使用您自己的编码器重新序列化并比较该输出(假设您的JSON编码器是确定的)。