0

我是 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>);

我怎样才能做到这一点

4

2 回答 2

0

你正在采取一种复杂的方式。利用

JSONObject mJSONData = new JSONObject();

像这样一一取值:

data = mJSONData.optJSONObject("JSON_OBJECT_NAME");
于 2013-10-11T10:23:12.367 回答
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>>() {});
于 2013-10-11T12:11:56.107 回答