你必須分析你自己的(例如與SparseArray
)Users
類:
public static class Users implements JsonDeserializer<User> {
public SparseArray<String> values = new SparseArray<>();
@Override
public Users deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
Users u = new Users();
if (json.isJsonObject()) {
JsonObject obj = (JsonObject) json;
for (Map.Entry<String, JsonElement> elem : obj.entrySet()) {
if (Util.isInteger(elem.getKey())) {
u.values.put(Integer.parseInt(elem.getKey()), elem.getValue().getAsString());
}
}
}
return u;
}
}
爲了使這項工作增加TypeAdapter到Gson
例如:
private static GsonConverter getConverter() {
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(Users.class, new Users());
return new GsonConverter(builder.create());
}
而且在RestAdapter
情況下使用此轉換器:
mInstance = new RestAdapter
.Builder()
.setConverter(getConverter())
.//
.create(...)
對於初學者來說,這將是一個'名單',不能簡單地認爲是返回 –
njzk2
然後你需要爲'名單' –
njzk2
@ njzk2'名單一個TypeAdapter了''User'?我不這麼認爲。 Json是JsonObject而不是數組。 –
skywall