package com.github.shell88.bddvideoannotator.annotationfile.converter; import com.google.gson.JsonElement; import com.google.gson.JsonPrimitive; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; import java.lang.reflect.Type; /** * Used to escape special characters in GSON. * * @author Hell * */ public class GsonEscapeStringSerializer implements JsonSerializer<String> { @Override public JsonElement serialize(String src, Type typeOfSrc, JsonSerializationContext context) { return new JsonPrimitive(escapeJs(src)); } /** * @param string * - Json String for GSON. * @return escaped String for JavaScript. */ public String escapeJs(String string) { String escapes[][] = { { "\\", "\\\\" }, { "\"", "\\\"" }, { "\n", "\\n" }, { "\r", "\\r" }, { "\b", "\\b" }, { "\f", "\\f" }, { "\t", "\\t" } }; for (String[] esc : escapes) { string = string.replace(esc[0], esc[1]); } return string; } }