public T decode(String json, Class<T> cls) { Gson gson = new Gson(); return gson.fromJson(json, cls); }
public static <T extends BaseResult> void get(String url, RequestParams params, final Class<T> tClass, final MyLoadingCallback listener) { if (listener != null && !NetUtils.isConnected(MyApplication.getContext())) { listener.failure(RSP_CODE_NET_ERROR, TDString.getStr(R.string.net_connexted_error)); return; } AsyncHttpClientUtil2.getAsyncHttpClient().get(url, params, new HomerAsyncHttpResponseHandler(MyApplication.getInstance()) { @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { super.onSuccess(statusCode, headers, responseBody); if (null != responseBody) { String json = new String(responseBody); Gson gson = new Gson(); T apiResult = gson.fromJson(json, tClass); String code = apiResult.getCode(); switch (code) { case "999": listener.success(gson.fromJson(json, tClass)); break; case "22": goLoginActivity(); listener.failure(Integer.parseInt(code), "用户未登录,请先登录"); break; default: MyLog.d(TAG, "sendActCode onSuccess failed json=" + json); listener.failure(Integer.parseInt(code), apiResult.getMessage()); break; } } listener.completed(); } @Override public void onFailure(int statusCode, byte[] responseBody) { super.onFailure(statusCode, responseBody); if (null != responseBody) { String failureStr = new String(responseBody); MyLog.d(TAG, "onFailure =" + failureStr); listener.failure(RSP_CODE_NET_ERROR, failureStr); } listener.completed(); } }); }
如何解析泛型JSON
最新推荐文章于 2024-05-03 20:10:36 发布