JSON印有反斜杠

时间:2018-12-04 10:35:27

标签: mysql json hibernate spring-boot jackson

{"externalQueryDate":"4018-11-23"}

这是我的json字符串,它位于mysql的一列中。

我用creditRisk.getCreditRiskDataCodeBased()

javascriptswagger中,我看到反斜杠:

"{\"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

1 个答案:

答案 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告诉它日期格式是什么。

我建议您编写一些简单的单元测试,以获取字符串中转义引号的含义。看来它们使您感到困惑。