2014-03-05 135 views
0

我在我的android应用程序中使用Google GSON库来解析来自服务器的json响应。 在某些情况下,API会响应检索html代码(例如&#187)。是否可以告诉Google GSON解析该代码并将其转换为与该代码关联的符号?Google GSON - 解析html代码

+0

你能不能给我们从您的API一个例子输出? –

+0

Sure {“Id”:8075,“Images”:[],“Fields”:[“Type | 15”],“Text”:“« Some message »”,“Phone”:“+ 374 xx- XX-XX“} – Armen

回答

0

Gson没有任何内置的东西会做到这一点,没有。

让Gson为你做这件事的唯一方法是编写一个String的自定义解串器来解码字符串。您还需要另一个库来执行HTML解码,因为Java本身不包含任何内容。

下面是一个使用Apache Commons Lang库做解码的例子:

public class App 
{ 
    String foo; 

    public static void main(String[] args) throws MalformedURLException, IOException 
    { 
     String json = "{\"Text\":\"«Some message»\"}"; 

     Gson g = 
      new GsonBuilder() 
       .registerTypeAdapter(String.class, new MyStringDeserializer()).create(); 

     Type t = new TypeToken<Map<String,String>>(){}.getType(); 
     Map<String,String> map = g.fromJson(json, t); 
     System.out.println(map.get("Text")); 
    } 
} 


class MyStringDeserializer implements JsonDeserializer<String> 
{ 

    @Override 
    public String deserialize(JsonElement je, Type type, JsonDeserializationContext jdc) throws JsonParseException 
    { 
     String s = StringEscapeUtils.unescapeHtml3(je.getAsString()); 
     return s; 
    } 

} 

输出:

«一些消息»