java - 无法使用json值包含\\的jackson的objectMapper解析json
问题描述
我正在使用杰克逊的 ObjectMapper 类将 json 字符串序列化为普通的 java 对象。ObjectMapper 抛出异常
我试图反序列化的 json 字符串是
String input="{\"id\":\"30329\",\"appId\":\"3301\",\"nodeId\":1556537156187,\"data\":\"select id,obt_marks,'\\\\m' as dummy from ltc_test_1\"}";
数据键的值包含导致问题的\,是他们逃避这个问题的一种方法。
我想要这个值在我的POJO \"
问题: 如何使用 java 来实现,objectMapper 或 Jackson 中是否有任何设置来解决这个问题?
下面是我将在反序列化后得到的 pojo
public class WorkflowProcessInfo {
private Long id;
private Long appId;
private Long nodeId;
private String data;
}
////Code I am using for deserialization
ObjectMapper mapper = new ObjectMapper();
mapper.configure(Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, false);
mapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
mapper.configure(Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
mapper.configure(Feature.ALLOW_SINGLE_QUOTES, true); mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY,
true);
mapper.setSerializationInclusion(Include.NON_NULL);
try{
return mapper.readValue(inputJson, WorkflowProcessInfo.class);
}catch(Exception e){
syso(e.getMessage())}
我期望WorkflowProcessInfo
对象的值与 json 含义中存在的值相同,pojo 的数据属性应如下所示
WorkflowProcessInfo.data="select id,obt_marks,'\\m' as dummy from ltc_test_1"
相反,我得到了例外
com.fasterxml.jackson.core.JsonParseException:在 [来源:java.io.StringReader@1ea9f6af; 行:1,列:84]
解决方案
推荐阅读
- python - 在 Python 中重新创建 R Plot - 根据第三个值的范围更改颜色
- algorithm - 整数到罗马算法时间复杂度
- r - R:如何从 gbm 包中找到 C/C++ 源代码?
- android - 位图截图问题
- websocket - 使用 websocket 的 ngrok 不起作用,找不到 Sec-WebSocket-Accept
- pandas - 熊猫数据透视表 - 有条件的平均值
- reactjs - 在数组 React-Redux 中存储状态
- javascript - 使用 thymeleaf 在 javascript 中渲染未转义的字符
- r - 自定义标题并将文本添加到构面?
- python - 安装 Geopandas 的问题