【问题标题】:how to get this json with retrofit如何通过改造获得这个 json
【发布时间】:2015-11-10 20:15:00
【问题描述】:

我正在尝试使用带有 android studio 的改造将其作为 json 接收。

{ “令牌”:“7bf0df45cf2c09f670ubae22af83c98b36d66bf2”, “用户”:{ “用户名”:“根”, “电子邮件”:“brianstuffler@hotmail.com”, “is_active”:真 } }

目前这是我的代码,

LoginService loginService = ServiceAuthGenerator.createService(LoginService.class);
        Password = tv_Password.getText().toString();
        Username = tv_Username.getText().toString();
        Userx user = new Userx(Username,Password);

        Call<Userx> call = loginService.getToken(user);
        call.enqueue(new Callback<Userx>() {

            @Override
            public void onResponse(Response<Userx> response, Retrofit retrofit) {
                dialog.dismiss();
                if (response.isSuccess()) {
                    Userx user = response.body();
                    SaveToken(user.getToken());
                    Intent intent = new Intent(getApplicationContext(), MainMenu.class);
                    startActivity(intent);
                }
            }

Userx 是我的 Model 类,它看起来像这样,有自己的 getter、setter 和构造函数。

public class Userx {
    private String token;
    private String username;
    private String password;
    private String email;
    private String phone;
    private String name;
}

我是否必须创建另一个继承自该模型类的模型类?谢谢。

【问题讨论】:

  • "user": { .. } 是一个子对象。你也可以简单地创建一个。否则,您可能必须提供一个自定义反序列化器,这通常比创建子类要多。 jsonschema2pojo.org 之类的工具甚至可以让你从 json 中创建类。

标签: android json http retrofit pojo


【解决方案1】:

为了让你的 pojos 匹配(并干净地映射到)你提供的 Json,你需要这样的东西:

public class User {
    private String username;

    private String email;

    @SerializedName("is_active")
    private boolean active;
}

public class Userx {
    private String token;

    private User user;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多