How To Have Retrofit To Unescape Html Escaped Symbols?
Solution 1:
As a generic answer this could be done with custom JsonDeserialiser
, like:
publicclassHtmlAdapterimplementsJsonDeserializer<String> {
@Overridepublic String deserialize(JsonElement json, Type typeOfT,
JsonDeserializationContext context)throws JsonParseException {
return StringEscapeUtils.unescapeHtml4(json.getAsString());
}
}
and adding
gsonBuilder.registerTypeAdapter(String.class, new HtmlAdapter())
to your static block. Method StringEscapeUtils.unescapeHtml4
is from external library org.apache.commons, commons-text
but you can do it with any way you feel better.
The problem with this particular adapter is that it applies to all deserialized String
fields and that may or may not be a performance issue.
To have a more sophisticated solution you could also take a look at TypeAdapterFactory
. With that you can decide per class if you want apply some type adapter to that class. So if for example your POJOs inherit some common base class it would be simple to check if class extends that base class and return adapter like HtmlAdapter
to apply HTML decoding for String
s in that class.
Post a Comment for "How To Have Retrofit To Unescape Html Escaped Symbols?"