如何将JsonNode转换为String而不转义引号 - 使用\"而不是"

时间:2017-05-04 22:35:28

标签: java json jackson

我有以下课程。我使用ObjectMapper.convertValue()将此类转换为Jackson ObjectNode。然后ObjectNode.toString()将返回类似"{"playing": false}"的字符串。

但我正在寻找的是Json String而没有像"{\"playing\": false}"那样转义引号。

我目前正在使用String.replace("\"", "\\\""),并且它有效。有没有更好的方法来实现这一目标?

更新节点如评论中所述,我需要将此状态字符串发送到服务器,但看起来我的服务器只能识别"{\"playing\": false}"

public class MyState {
    public Boolean playing;
}

private String getStateString()
throws Exception
{
    ObjectNode objectNode = objectMapper.convertValue(currentState, ObjectNode.class);
    String pretty = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(objectNode);
    return objectNode.toString().replace("\"", "\\\"");
}

更新解决方案:正如评论中所述,服务无法处理我的状态字符串的根本原因不是由于字符串转义,而是由于属性名称不正确(进一步转换)到json key String)。

0 个答案:

没有答案