【问题标题】:How to properly use GSon and Retrofit如何正确使用GSon和Retrofit
【发布时间】:2014-12-28 21:21:26
【问题描述】:

我想知道如何正确使用 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))

这些方法?

【问题讨论】:

  • 你的问题解决了吗?

标签: android gson retrofit


【解决方案1】:

如下使用gson.fromJson(String, Class)

Gson gson = new Gson();
MyResponse myResponse = gson.fromJson(jsonString, MyResponse.class);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-05
    • 2021-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    相关资源
    最近更新 更多