如何通过嵌套值Android进行翻新,以便向API发布,更新和删除数据?

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

我想使用此JSON将新数据发布到服务器:

{
 "tgl_Lahir": "1990-12-18 00:00:00",
 "nama": "Joe",
 "keterangan": "Employee",
 "tempatLahir": "Los Angeles",
 "noPegawai": "111111",
 "golDarah": "0",
 "statusNikah": "0",
  "hubungans": {
            "id": "10"
         },
 "agama": {
            "id_Agama": "1"
          },

 "jeniskelamin": {
            "jenisKelamin": "1"
        }
}

这是我的ApiClientPOST.java:

public class ApiClientPOST {
    private static Retrofit retrofit = null;


    public static Retrofit getClient(String url){
        if(retrofit == null){
            retrofit = new Retrofit.Builder().baseUrl(url)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }

        return retrofit;
    }
}

这是我的APIUtils.java:

public class APIUtils {
    private APIUtils(){
    };

    public static final String API_URL = "IPAddress/employee/family/add";

    public static MainInterface getUserService(){
        return ApiClientPOST.getClient(API_URL).create(MainInterface.class);
    }

}

这是我的familylistresponsePOST.java:


public class familylistresponsePOST {

    @SerializedName("noPegawai")
    private String noPegawai;

    @SerializedName("date_otor")
    private Object dateOtor;

    @SerializedName("jeniskelamin")
    private Jeniskelamin jeniskelamin;

    @SerializedName("keterangan")
    private String keterangan;

    @SerializedName("hubungans")
    private Hubungans hubungans;

    @SerializedName("tgl_Lahir")
    private String tglLahir;

    @SerializedName("nama")
    private String nama;

    @SerializedName("agama")
    private Agama agama;

    @SerializedName("statusNikah")
    private String statusNikah;

    @SerializedName("tempatLahir")
    private String tempatLahir;

    @SerializedName("id")
    private int id;

    @SerializedName("golDarah")
    private String golDarah;

    public void setNoPegawai(String noPegawai){
        this.noPegawai = noPegawai;
    }

    public String getNoPegawai(){
        return noPegawai;
    }

    public void setDateOtor(Object dateOtor){
        this.dateOtor = dateOtor;
    }

    public Object getDateOtor(){
        return dateOtor;
    }

    public void setJeniskelamin(Jeniskelamin jeniskelamin){
        this.jeniskelamin = jeniskelamin;
    }

    public Jeniskelamin getJeniskelamin(){
        return jeniskelamin;
    }

    public void setKeterangan(String keterangan){
        this.keterangan = keterangan;
    }

    public String getKeterangan(){
        return keterangan;
    }

    public void setHubungans(Hubungans hubungans){
        this.hubungans = hubungans;
    }

    public Hubungans getHubungans(){
        return hubungans;
    }

    public void setTglLahir(String tglLahir){
        this.tglLahir = tglLahir;
    }

    public String getTglLahir(){
        return tglLahir;
    }

    public void setNama(String nama){
        this.nama = nama;
    }

    public String getNama(){
        return nama;
    }

    public void setAgama(Agama agama){
        this.agama = agama;
    }

    public Agama getAgama(){
        return agama;
    }

    public void setStatusNikah(String statusNikah){
        this.statusNikah = statusNikah;
    }

    public String getStatusNikah(){
        return statusNikah;
    }

    public void setTempatLahir(String tempatLahir){
        this.tempatLahir = tempatLahir;
    }

    public String getTempatLahir(){
        return tempatLahir;
    }

    public void setId(int id){
        this.id = id;
    }

    public int getId(){
        return id;
    }

    public void setGolDarah(String golDarah){
        this.golDarah = golDarah;
    }

    public String getGolDarah(){
        return golDarah;
    }

    @Override
    public String toString(){
        return
                "ListUserResponse2{" +
                        "noPegawai = '" + noPegawai + '\'' +
                        ",date_otor = '" + dateOtor + '\'' +
                        ",jeniskelamin = '" + jeniskelamin + '\'' +
                        ",keterangan = '" + keterangan + '\'' +
                        ",hubungans = '" + hubungans + '\'' +
                        ",tgl_Lahir = '" + tglLahir + '\'' +
                        ",nama = '" + nama + '\'' +
                        ",agama = '" + agama + '\'' +
                        ",statusNikah = '" + statusNikah + '\'' +
                        ",tempatLahir = '" + tempatLahir + '\'' +
                        ",id = '" + id + '\'' +
                        ",golDarah = '" + golDarah + '\'' +
                        "}";
    }
}

这是我的MainInterface.java:


    @POST("IPADDRESS/WSHRIS/pegawai/family/add")
    Call<familylistresponsePOST> addFamily(@Body familylistresponsePOST newFamily);

我尝试创建此方法并将其用于Button.setOnClickListener:

  public void addFamily(familylistresponsePOST familylistresponsePOST){
        Call<familylistresponsePOST> call = apiService.addFamily(familylistresponsePOST);
        call.enqueue(new Callback<com.example.ess_app.familyservice.familylistresponsePOST>() {
            @Override
            public void onResponse(Call<com.example.ess_app.familyservice.familylistresponsePOST> call, Response<com.example.ess_app.familyservice.familylistresponsePOST> response) {
                Toast.makeText(TambahDataKeluarga.this,"Data Berhasil Ditambahkan!", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(Call<com.example.ess_app.familyservice.familylistresponsePOST> call, Throwable t) {
                Log.e("ERROR: ", t.getMessage());
            }
        });
    }

这是我的tambah按钮:

tambah.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                familylistresponsePOST f = new familylistresponsePOST();
                f.setNoPegawai(snopeg);
                f.setNama(snama);
                f.setTempatLahir(stmpLahir);
                f.setTglLahir(stglLahir);
                f.setKeterangan(sketerangan);
                f.setStatusNikah(sstatusnikah);
                f.setGolDarah(sgoldar);
//                agamas.setAgama(valueAgama);
//                hubungans.setHubungan(valueHubungan);
//                jks.setJenisKelamin(valueJenisKelamin);
                addFamily(f);
                Log.d(f.getNama(),f.getGolDarah());
//                Toast.makeText(TambahDataKeluarga.this,f, Toast.LENGTH_LONG).show();

            }
        });

[当我不使用“ Agama,Hubengan和JenisKelamin”时,吐司向我发送“成功添加!”但是当我在数据库中检查它时,数据没有存储。但是,当我使用“ Agama,Hubongan和JenisKelamin”时,相关的程序代码行中将出现一些错误。请帮我解决这个问题,谢谢:D

java android rest nested retrofit2
1个回答
0
投票

我看不到您在哪里定义Hubungans,Agama和Jeniskelamin类,尽管您将其用作familylistresponsePOST.java中的数据类型

创建了这三个类之后,希望您的问题能够得到解决。

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