{"externalQueryDate":"4018-11-23"}
这是我的json字符串,它位于mysql
的一列中。
我用creditRisk.getCreditRiskDataCodeBased()
在javascript
或swagger
中,我看到反斜杠:
"{\"externalQueryDate\":\"4018-11-23\"}"
我可以在前端使用JSON.parse
,但是,我想解决的是后端。
偶
为
StringWriter sw = new StringWriter();
objectMapper.writer().writeValue(sw, creditRisk.getCreditRiskDataTermBased());
它写道:
"responseCode": "\"{\\\"externalQueryDate\\\":\\\"4018-11-23\\\"}\""
我尝试过那些
objectMapper.readTree(creditRisk.getCreditRiskDataCodeBased()).toString()
和
objectMapper.writer().writeValue(sw, creditRisk.getCreditRiskDataTermBased());
和
@JsonRawValue
@JsonValue
我该如何解决?
在mysql
中,也没有slash
es
答案 0 :(得分:0)
如果要使用jackson objectMapper解析json字符串,则需要使用“ read”并告诉它要使用哪个类来创建解析的对象。
因此,您可以执行类似的操作
ObjectMapper objectMapper = new ObjectMapper();
String json = "{\"externalQueryDate\":\"4018-11-23\"}";
Map map = objectMapper.readValue(json, Map.class);
System.out.print(map.get("externalQueryDate"));
我刚刚在这里使用了Map,因为我不知道您要将json解析为哪个类。如果您的类具有externalQueryDate字段,则可以阅读该字段。如果您想直接将值解析为LocalDate字段,也可以在该字段上使用@JsonFormat告诉它日期格式是什么。
我建议您编写一些简单的单元测试,以获取字符串中转义引号的含义。看来它们使您感到困惑。