【问题标题】:Convert JSON unicode characters to unicode value将 JSON unicode 字符转换为 unicode 值
【发布时间】:2014-06-15 07:58:48
【问题描述】:

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

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

【问题讨论】:

  • 您使用的是哪个 JSON 库?
  • Google 的 gson 库

标签: java json unicode


【解决方案1】:

我希望将所有 JSON Unicode 转换为其特定的 Unicode 值

我怀疑你想将所有个字符转换为\u-escapes。在这种情况下,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 编码器是确定性的)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2016-11-03
    • 2011-05-14
    • 1970-01-01
    相关资源
    最近更新 更多