如何打印出这个json文件的结果?(Android Retrofit2)

问题描述 投票:0回答:1

我想使用 retrofit2 在文本视图中显示 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.接口

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

主要活动

    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个回答
1
投票

textView.setText(response.code()); 给你一个响应的代码。为了得到你的数据模型,你需要一个响应体 response.body()

© www.soinside.com 2019 - 2024. All rights reserved.