将JSON unicode字符转换为unicode值

时间:2014-06-15 07:58:48

标签: java json unicode

基本上,当JSON接收字符串时,它会将'&之类的内容转换为Unicode值。我正在尝试将JSON值存储起来,当它稍后再出现时,将其与JSON值进行比较。但是,当我发送“Let's Party”之类的内容时,它会返回“Let\u0027s Party

基本上,我希望在存储或发送之前将所有JSON Unicode转换为特定的Unicode值。

1 个答案:

答案 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编码器是确定的)。