我想知道如何正确使用GSon和Retrofit? 我从服务器收到了JSON:
{"tag":"getall","success":1,"error":0,"messages":[
{"message":"aaa","user_id":"111e9f66624637.88881557","time":"2014-10-17 21:27:29","usermail":"z@z.z"},{"message":"hdhxnd","user_id":"111e9f66624637.88881557","time":"2014-10-17 21:14:36","usermail":"z@z.z"},{"message":"zz","user_id":"111e9f66624637.88881557","time":"2014-10-17 21:11:15","usermail":"z@z.z"},{"message":"d","user_id":"111e9f66624637.88881557","time":"2014-10-17 18:16:35","usermail":"z@z.z"},{"message":"c","user_id":"111e9f66624637.88881557","time":"2014-10-17 18:15:16","usermail":"z@z.z"}]}
这是我的改造方法:
public interface ConnectInterface {
@FormUrlEncoded
@POST("/")
void getUserMessages(@Field("tag") String first, @Field("device_id") String last, Callback<MyResponse> cb);
}
MyResponse课程:
public class MyResponse {
public List<Messages> messages;
public String success;
public String error;
public String tag;
public class Messages {
public String message;
public String user_id;
public String time;
public String usermail;
}
}
使用它的部分代码:
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(URL)
.setErrorHandler(new MyErrorHandler())
.build();
ConnectInterface service = restAdapter.create(ConnectInterface.class);
Callback<MyResponse> stringCallback = new Callback<MyResponse>() {
@Override
public void success(MyResponse s, Response response) {
System.out.println(s.tag);
for(MyResponse.Messages messages: s.messages){
System.out.println(messages.message);
}
}
@Override
public void failure(RetrofitError error) {
System.out.println(error.toString());
}
};
service.getUserMessages("getall", "4", stringCallback);
我是以一种好的方式做到的吗?
是什么Gson gson = new GsonBuilder()
setConverter(new GsonConverter(gson))
这些方法?
答案 0 :(得分:0)
使用gson.fromJson(String, Class)
如下:
Gson gson = new Gson();
MyResponse myResponse = gson.fromJson(jsonString, MyResponse.class);