我使用jackson来解析json数据。现在我遇到处理\ uXXXX问题的问题。
我在这里得到的数据就像
{"UID":"here_\ud83d\udc3b"}
使用ObjectMapper.readValue(jsonContent, UserId.class);
将json转换为UserId的实例后,UID属性不是字面意思“here_ \ ud83d \ udc3b”。杰克逊将\ud83d\udc3b
转换为2个字符作为unicode值。
我的问题是,是否有可能让杰克逊跳过这个“Unicode转换”并将字面值“\ ud83d \ udc3b”按原样键入?
答案 0 :(得分:2)
没有。 JSON解析器需要处理Unicode转义以生成基础Unicode字符。
另一方面,写入时,某些字符也可能使用类似的Unicode转义进行编码。
因此,如果您需要使用转义,则需要自行重新编码这些值。
答案 1 :(得分:1)
是的,您可以将\uXXXX
替换为\\uXXXX
或\\\\uXXXX
,具体取决于您的技术(即杰克逊)处理转义字符的方式。恕我直言,它应该对你有所帮助。因为Jackson基于Java,所以在Java中\\\\uXXXX
是替换\uXXXX
所需的值。