【问题标题】:How can I print out the results of this json file? (Android Retrofit2)如何打印出这个 json 文件的结果? (安卓改造2)
【发布时间】:2020-05-18 14:16:47
【问题描述】:

我想使用 retrofit2 在 textview 中显示 Json 结果,但我无法得到想要的结果。

json

    {
  "rows" : [ {
    "playerId" : "f8a49812eb9c3e5c8e738c3664e0ebd1",
    "nickname" : "Yuichuan",
    "grade" : 89
  } ]
}

Model.class

public class Model {
    public String playerId;
    public String nickname;
    public int grade;

    public String getPlayerId() {
        return playerId;
    }

    public void setPlayerId(String playerId) {
        this.playerId = playerId;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public int getGrade() {
        return grade;
    }

    public void setGrade(int grade) {
        this.grade = grade;
    }
}

PlayerModel.class

    public class PlayerModel {
    public List<Model> rows;
}

**RetrofitFactory.class**

    public class RetrofitFactory {
    private static String BASE_URL="https://api.neople.co.kr/";
    public static RetrofitService create(){
        Retrofit retrofit=new Retrofit.Builder().baseUrl(BASE_URL).addConverterFactory(GsonC`enter code here`onverterFactory.create()).build();
        return retrofit.create(RetrofitService.class);
    }
}

RetrofitService.interface

    public interface RetrofitService {
    @GET("cy/players/")
    Call<PlayerModel> getlist(@Query("nickname") String nickname,
                              @Query("apikey") String apikey);
}

MainActivityt

    public class MainActivity extends AppCompatActivity {
    private static final String API_KEY = "8yTuVMwy2DirHl2sWaZ3C8IJLslOfTpQ";
    private static final String TAG ="Main" ;
    TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView=findViewById(R.id.test);
        RetrofitService networkService=RetrofitFactory.create();
        networkService.getlist("Yuichuan",API_KEY)
                .enqueue(new Callback<PlayerModel>() {
                    @Override
                    public void onResponse(Call<PlayerModel> call, Response<PlayerModel> response) {
                            if(!response.isSuccessful()){
                                textView.setText(response.code());
                                return;
                            }
                        Log.d(TAG, "onResponse: ConfigurationListener::"+call.request().url());
                    }

                    @Override
                    public void onFailure(Call<PlayerModel> call, Throwable t) {
                        textView.setText(t.getMessage());
                    }
                });
    }
}

我想把这些json文件打印出来,但是并不能如我所愿,所以希望你给我一些帮助或建议。这看起来是一个简单的问题,但对我来说很难,因为我不习惯 json。

【问题讨论】:

    标签: android json retrofit2


    【解决方案1】:

    textView.setText(response.code()); 为您提供响应代码。要获得您的数据模型,您需要回复response.body()

    【讨论】:

    • 列表 abcd=response.body().rows;字符串 playerId=abcd.get(0).getPlayerId();字符串昵称=abcd.get(0).getNickname(); int Grade=abcd.get(0).getGrade();
    • 这样,就解决了。对不起。我发布了一个问题并不断尝试,结果成功了。
    猜你喜欢
    • 2014-11-09
    • 1970-01-01
    • 2014-05-25
    • 2018-08-12
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    相关资源
    最近更新 更多