Java.Dynamic方法返回类型

时间:2013-10-11 10:10:37

标签: java

我是java的新手我使用GSon json解析器。我有一个从服务器发送和接收json数据的类。 要解析json响应,请执行以下操作:

strResult = new String(readBytes());
JsonIspResponse<JsonIspUtmInfo> res2;
Type type = (Type) new TypeToken<JsonIspResponse<JsonIspUtmInfo>>() {}.getType();
res2 = gs.fromJson(strResult, type);

与GSON文档一样...

我需要制作一个可以做到这一点的方法(getResponse):

JsonIspResponse<JsonIspUtmInfo> res2 = getResponse(request, JsonIspResponse<JsonIspUtmInfo>);

我该怎么做

2 个答案:

答案 0 :(得分:0)

你采取了一种复杂的方式。 使用

JSONObject mJSONData = new JSONObject();

像这样逐个取值:

data = mJSONData.optJSONObject("JSON_OBJECT_NAME");

答案 1 :(得分:0)

我现在无法对其进行测试,但请尝试以下几点:

T getResponse(String request, TypeToken<T> typeToken) {
    return (T) gs.fromJson(request, (Type) typeToken.getType());
}

// Usage
JsonIspResponse<JsonIspUtmInfo> res2 = getResponse(request, 
    new TypeToken<JsonIspResponse<JsonIspUtmInfo>>() {});