私はこれを初心者です。私はJSONarrayのPOSTリクエストからResponseを取得しようとしています。そして、配列の応答を取得しようとすると、JSONオブジェクトを取得できます。これはJSONアレイでのPOSTリクエスト応答の更新
User.Java私のPOJOである
public class User {
@SerializedName("username")
@Expose
private String user;
@SerializedName("pass")
@Expose
private String pass;
@SerializedName("status")
@Expose
private String status;
@SerializedName("message")
@Expose
private String message;
@SerializedName("data")
@Expose
private ArrayList<Datum> data;
public User(String user, String pass, String mesaage){
this.user = user;
this.pass = pass;
this.message = message;
}
public String getStatus() {
return status;
}
public ArrayList<Datum> getData() {
return data;
}
public void setData(ArrayList<Datum> data) {
this.data = data;
}
public String getMessage() {
return message;
}
}
Datum.Java:これは私のインターフェイス
public interface UserClient {
@FormUrlEncoded
@POST("login")
Call<User> loginAccount (
@Field("user") String username,
@Field("pass") String password
);}
が
public class Datum {
@SerializedName("id")
@Expose
private String id;
@SerializedName("username")
@Expose
private String username;
@SerializedName("mk_nama")
@Expose
private String mkNama;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getMkNama() {
return mkNama;
}
public void setMkNama(String mkNama) {
this.mkNama = mkNama;
}
}
であり、これは私のMainActivityある
private void sendNetworkRequest(String username, String password) {
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl("https://prht.herokuapp.com/api/")
.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.build();
UserClient client = retrofit.create(UserClient.class);
Call<User> call = client.loginAccount(username,password);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
Toast.makeText(LoginActivity.this, response.body().getData(),Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<User> call, Throwable t) {
Toast.makeText(LoginActivity.this, "BAD ERROR" , Toast.LENGTH_SHORT).show();
}
});
}
私は(のgetDataでJSONarrayのオブジェクトに到達することができないように見える
)
応答は、この "データ" であることを仮定し、あなたのJSONレスポンス – arjun
を投稿:[ { "ID": "90"、 "ユーザ名": "10090"、 "mk_nama":「XXXXXXXXXX " } ] –
あなたは問題はarraylistだけです。つまり、 'username'、' pass'、 'status'のような他のフィールドでデータを取得しているということです。 – arjun