【发布时间】:2020-10-01 14:18:48
【问题描述】:
我正在尝试反序列化 JSON 格式
"{mapping:{MyType(type=\"A\", value=\"B\"):\"C\"}}"
进入类类型
class MyMapping {
Map<MyType, String> mapping;
}
class MyType {
String type;
String value;
}
由于我有一个映射类型,我添加了一个 KeyDeserializer 来反序列化MyType(type=\"A\", value=\"B\")
但是当我尝试反序列化时,我得到一个异常
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('(' (code 40)): was expecting a colon to separate field name and value
这是因为它在MyType(type=\"A\", value=\"B\") 中遇到( 并在那里中断。如果我将整个密钥放在双引号 \"MyType(type=\"A\", value=\"B\")\" 内,它会将整个密钥传递给我的解串器。
有没有一种方法可以强制它转义 '(' 字符,而不必将整个键加上引号。
【问题讨论】:
-
你有没有考虑过使用像 Gson 这样的库
-
这不是一个有效的 JSON,所以很明显它不能被标准反序列化器反序列化...