我无法找到问题的解决方案。当我向服务器发送数据时,它工作正常但我无法从同一方法获得结果。
这是我的JSON回复:
{" OK":"真"" MSG":"有源""数据":{ " _id":" 1""名称":" AAA""代码":1111,&#34 ;状态":1,"的updated_at":" 2018年4月3日 07:26:56"," created_at":" 2018-04-03 07:17:05"," key":" mmnnjmn34564lt& #34;}}
我可以得到" ok"和" msg"但我无法获得"数据"领域。我怎么解决?
接口
public interface ApiInterfaceService {
@POST("active")
Call<Data> createConfirmCode(@Body Data data);
OkHttpClient okHttpClient=new OkHttpClient();
Retrofit retrofit=new Retrofit.Builder()
.baseUrl(ApiClientConfig.BASE_URL)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
apiInterfaceService =retrofit.create(ApiInterfaceService.class);
}
Data.java
public class Data {
@SerializedName("ok")
public String ok;
@SerializedName("msg")
private String msg;
@SerializedName("data")
private List<dataResponse> data;
}
dataResponse.java
public class dataResponse{
@SerializedName("_id")
public Integer _id;
@SerializedName("name")
public String name;
@SerializedName("code")
public Integer code;
@SerializedName("status")
public Integer status;
}
我的代码:
Data datamodel=new Data();
Call<Data> call = apiInterfaceService.createConfirmCode(datamodel);
call.enqueue(new Callback<Data>() {
@Override
public void onResponse(Call<Data> call, Response<Data> response) {
if (response.isSuccessful()) {
Log.i(InitialClass.TAG,String.valueOf(response.body().getMsg()+" "+response.body().getData());
}
}
@Override
public void onFailure(Call<Data> call, Throwable t) {
Log.i(InitialClass.TAG,t.getMessage()+" "+ t.getCause());
}
});
答案 0 :(得分:1)
你json看起来格格不入,把它粘贴到http://jsonviewer.stack.hu/并格式化它以查看你提供给我们的字符串中的json格式,如果这真的是你收到的json,问题不在android端但是在服务器端。
使用新的json编辑,似乎您正在请求数组
@SerializedName("data")
private List<dataResponse> data;
但你的json返回一个对象
"data": {
"_id": "1",
"name": "aaa",
"code": 1111,
"status": 1,
"updated_at": "2018-04-03 07:26:56",
"created_at": "2018-04-03 07:17:05",
"key": "mmnnjmn34564lt"
}