我有以下课程。我使用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)。