先看json结构
{
code:0,
data:{},
msg:"ok"
}
对于这个中结构的Java中Gson,是解析不出来的,这个时候,我们需要进行实现Gson的GsonBuilder registerTypeAdapter是适配器,实现JsonSerializer,JsonDeserializer接口进行序列化。
解决办法创建一个类:
class StringConverter implements JsonSerializer<String>,JsonDeserializer<String> {
@Override
public String deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
return json.getAsJsonPrimitive().getAsString();
}
@Override
public JsonElement serialize(String src, Type typeOfSrc, JsonSerializationContext context) {
if (src == null || src.equals("{}")) {
return new JsonPrimitive("");
} else {
return new JsonPrimitive(src.toString());
}
}
}
再创建Gson对象时使用这个类StringConverter
Gson gson = new GsonBuilder().registerTypeAdapter(String.class,new StringConverter()).create();