gson = new GsonBuilder()
.registerTypeAdapter(
new TypeToken<TreeMap<String, Object>>() {
}.getType(),
new JsonDeserializer<TreeMap<String, Object>>() {
@Override
public TreeMap<String, Object> deserialize(
JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {
TreeMap<String, Object> treeMap = new TreeMap<>();
JsonObject jsonObject = json.getAsJsonObject();
Set<Map.Entry<String, JsonElement>> entrySet = jsonObject.entrySet();
for (Map.Entry<String, JsonElement> entry : entrySet) {
Object ot = entry.getValue();
if (ot instanceof JsonPrimitive) {
treeMap.put(entry.getKey(), ((JsonPrimitive) ot).getAsString());
} else {
treeMap.put(entry.getKey(), ot);
}
}
return treeMap;
}
}).create();
TreeMap<String, Object> map = null;
Type typeToken = new TypeToken<TreeMap<String, Object>>() {
}.getType();
map = gson.fromJson(gsonString, typeToken);
网友评论