我需要调用REST Webservice,它接受json并给出json响应。在json结构中,有一个请求头,它对所有API请求和响应都是通用的。在下面,您会发现请求标头是常见的,只有更改的字段是loginResult和loginResponse。
我将为每个请求和响应生成类POJO类。一种方法是将两个字段的loginRequest和loginResponse添加到JSONBody类。我有更多的API调用,JSONBody将有更多不需要的成员。
我的问题是:
如何封装变量字段(loginResult,loginResponse等)并将其传递给gson。
我尝试使用generics
public class JSONBody<T> {
private RequestHeader requestHeader;
private T loginRequest;
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
}
...
Type fooType = new TypeToken<JSONBody<LoginRequest>>() {
}.getType();
JSONBody<LoginRequest> body1 = gson.fromJson(body,fooType);
但是我没有得到如何传达gson使用LoginRequest或LoginResponse类应该用于转换?
样品申请:
"jsonBody": {
"requestHeader": {
"serviceID": "",
"serviceCode": "LOGIN",
"deviceDetails": {
"deviceOS": "Win32",
"deviceOSVersion": "Win32",
"uuid": "A12ED324"
}
},
"loginRequest": {
"username": "asd",
"pwd": "123"
}
示例回复:
"jsonBody": {
"requestHeader": {
"serviceID": "",
"serviceCode": "LOGIN",
"deviceDetails": {
"deviceOS": "Win32",
"deviceOSVersion": "Win32",
"uuid": "A12ED324"
}
},
"loginResponse": {
"responseCode": "200",
"responseString": "Success"
}