Retrofit + Gson没有解析其他设备上的某些LOWER_CASE_WITH_UNDERSCORES

时间:2015-09-26 09:46:12

标签: android json parsing gson retrofit

我无法理解为什么当我将测试设备切换到Galaxy Tab E时,某些Json字段无法解析,但是当我使用General Mobile Tab 8时,一切都成功运行。我在这里缺少什么?

这是我的服务:

 // specify gson parse behav
    Gson gson = new GsonBuilder()
            .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
            .setDateFormat("yyyy-MM-dd")
            .create();

    // set http client timeout
    OkHttpClient okHttpClient = new OkHttpClient();
    okHttpClient.setReadTimeout(Constants.SERVICE_TIME_OUT, TimeUnit.SECONDS);
    okHttpClient.setConnectTimeout(Constants.SERVICE_TIME_OUT, TimeUnit.SECONDS);

    // get rest builder
    RestAdapter.Builder builder = new RestAdapter.Builder()
            .setEndpoint(baseUrl)
            .setConverter(new GsonConverter(gson))
            .setClient(new OkClient(okHttpClient));

    // build
    RestAdapter adapter = builder.build();

我的Json对象

{

"data": [
    {
      "r_sayac": 44,
      "satis_tip_id": "02",
      "satis_tipi": "Vadeli Satış",
      "aciklama": null,
      "hareket_tipi_id": "32021",
      "sak_kontrol_no": "02",
      "fiyat_tipi": null,
      "depo_no": "0",
      "tesis_no": "01",
      "stok_tipi_no": "01",
      "iade_hareket_tipi_id": "10031",
      "kampanyalari_otomatik_uygula": 1
    }
  ],
  "statusCode": 200,
  "message": "İşlem Başarı ila gerçekleşti"
}

和我的POJO课程

public class SatisTipleriSatir {

   private Integer rSayac;
   private String satisTipId;
   private String satisTipi;
   private String hareketTipiId;
   private String sakKontrolNo;
   private String fiyatTipi;
   private String depoNo;
   private String tesisNo;
   private String stokTipiNo;
   private String iadeHareketTipiId;
   private Integer kampanyalariOtomatikUygula;

   // getters and setters go here..

}

我无法解析" satisf_tip_id":" 02" 等字段以及其他课程中的更多内容以及此类字段。

上课

private Double satisFiyati1;
private Double satisFiyati2;
private Double satisFiyati3;
private Double satisFiyati4;
private Double satisFiyati5;
private Double satisIskontosu1;
private Double satisIskontosu2;
private Double satisIskontosu3;
private Double satisIskontosu4;
private Double satisIskontosu5;
private Double satisIskontosu6;
private String satisVadeKodu1;
private String satisVadeKodu2;
private String satisVadeKodu3;
private String satisVadeKodu4;
private String satisVadeKodu5;

的Json

  {
  "malzeme_rsayac": 4205,
  "sablon_kodu": null,
  "yururlukten_kaldirildi": 0,
  "grup_kodu1": "01",
  "grup_kodu2": null,
  "grup_kodu3": null,
  "grup_kodu4": null,
  "grup_kodu5": null,
  "satis_fiyati1": 36,
  "satis_fiyati2": 0,
  "satis_fiyati3": 0,
  "satis_fiyati4": 0,
  "satis_fiyati5": 0,
  "satis_iskontosu1": 0,
  "satis_iskontosu2": 0,
  "satis_iskontosu3": 0,
  "satis_iskontosu4": 0,
  "satis_iskontosu5": 0,
  "satis_iskontosu6": 0,
  "satis_vade_kodu1": null,
  "satis_vade_kodu2": null,
  "satis_vade_kodu3": null,
  "satis_vade_kodu4": null,
  "satis_vade_kodu5": null,
  "satis_fiyat_kilidi": null,
  "isk1_kilidi": 0,
  "isk2_kilidi": 0,
  "isk3_kilidi": 0,
  "isk4_kilidi": 0,
  "isk5_kilidi": 0,
  "isk6_kilidi": 0,
  "satis_fiyat_para_birimi": "TRL",
  "fatura_alti_indirimlere_dahil": 1
}

这些字段无法解析

"satis_iskontosu1": 0,
"satis_iskontosu2": 0,
"satis_iskontosu3": 0,
"satis_iskontosu4": 0,
"satis_iskontosu5": 0,
"satis_iskontosu6": 0,
"fatura_alti_indirimlere_dahil": 1

2 个答案:

答案 0 :(得分:0)

尝试使用此选项在此选择JSON然后gson中创建您的POJO课程。 http://www.jsonschema2pojo.org/

预览后的类应该与@serialized变量

一样
package com.example;

import javax.annotation.Generated;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

@Generated("org.jsonschema2pojo")
public class Example {

@SerializedName("malzeme_rsayac")
@Expose
private long malzemeRsayac;
@SerializedName("sablon_kodu")
@Expose
private Object sablonKodu;
@SerializedName("yururlukten_kaldirildi")
@Expose
private long yururluktenKaldirildi;
@SerializedName("grup_kodu1")
@Expose
private String grupKodu1;
@SerializedName("grup_kodu2")
@Expose
private Object grupKodu2;
@SerializedName("grup_kodu3")
@Expose
private Object grupKodu3;
@SerializedName("grup_kodu4")
@Expose
private Object grupKodu4;
@SerializedName("grup_kodu5")
@Expose
private Object grupKodu5;
@SerializedName("satis_fiyati1")
@Expose
private long satisFiyati1;
@SerializedName("satis_fiyati2")
@Expose
private long satisFiyati2;
@SerializedName("satis_fiyati3")
@Expose
private long satisFiyati3;
@SerializedName("satis_fiyati4")
@Expose
private long satisFiyati4;
@SerializedName("satis_fiyati5")
@Expose
private long satisFiyati5;
@SerializedName("satis_iskontosu1")
@Expose
private long satisIskontosu1;
@SerializedName("satis_iskontosu2")
@Expose
private long satisIskontosu2;
@SerializedName("satis_iskontosu3")
@Expose
private long satisIskontosu3;
@SerializedName("satis_iskontosu4")
@Expose
private long satisIskontosu4;
@SerializedName("satis_iskontosu5")
@Expose
private long satisIskontosu5;
@SerializedName("satis_iskontosu6")
@Expose
private long satisIskontosu6;
@SerializedName("satis_vade_kodu1")
@Expose
private Object satisVadeKodu1;
@SerializedName("satis_vade_kodu2")
@Expose
private Object satisVadeKodu2;
@SerializedName("satis_vade_kodu3")
@Expose
private Object satisVadeKodu3;
@SerializedName("satis_vade_kodu4")
@Expose
private Object satisVadeKodu4;
@SerializedName("satis_vade_kodu5")
@Expose
private Object satisVadeKodu5;
@SerializedName("satis_fiyat_kilidi")
@Expose
private Object satisFiyatKilidi;
@SerializedName("isk1_kilidi")
@Expose
private long isk1Kilidi;
@SerializedName("isk2_kilidi")
@Expose
private long isk2Kilidi;
@SerializedName("isk3_kilidi")
@Expose
private long isk3Kilidi;
@SerializedName("isk4_kilidi")
@Expose
private long isk4Kilidi;
@SerializedName("isk5_kilidi")
@Expose
private long isk5Kilidi;
@SerializedName("isk6_kilidi")
@Expose
private long isk6Kilidi;
@SerializedName("satis_fiyat_para_birimi")
@Expose
private String satisFiyatParaBirimi;
@SerializedName("fatura_alti_indirimlere_dahil")
@Expose
private long faturaAltiIndirimlereDahil;

/**
* 
* @return
* The malzemeRsayac
*/
public long getMalzemeRsayac() {
return malzemeRsayac;
}

/**
* 
* @param malzemeRsayac
* The malzeme_rsayac
*/
public void setMalzemeRsayac(long malzemeRsayac) {
this.malzemeRsayac = malzemeRsayac;
}

/**
* 
* @return
* The sablonKodu
*/
public Object getSablonKodu() {
return sablonKodu;
}

/**
* 
* @param sablonKodu
* The sablon_kodu
*/
public void setSablonKodu(Object sablonKodu) {
this.sablonKodu = sablonKodu;
}

/**
* 
* @return
* The yururluktenKaldirildi
*/
public long getYururluktenKaldirildi() {
return yururluktenKaldirildi;
}

/**
* 
* @param yururluktenKaldirildi
* The yururlukten_kaldirildi
*/
public void setYururluktenKaldirildi(long yururluktenKaldirildi) {
this.yururluktenKaldirildi = yururluktenKaldirildi;
}

/**
* 
* @return
* The grupKodu1
*/
public String getGrupKodu1() {
return grupKodu1;
}

/**
* 
* @param grupKodu1
* The grup_kodu1
*/
public void setGrupKodu1(String grupKodu1) {
this.grupKodu1 = grupKodu1;
}

/**
* 
* @return
* The grupKodu2
*/
public Object getGrupKodu2() {
return grupKodu2;
}

/**
* 
* @param grupKodu2
* The grup_kodu2
*/
public void setGrupKodu2(Object grupKodu2) {
this.grupKodu2 = grupKodu2;
}

/**
* 
* @return
* The grupKodu3
*/
public Object getGrupKodu3() {
return grupKodu3;
}

/**
* 
* @param grupKodu3
* The grup_kodu3
*/
public void setGrupKodu3(Object grupKodu3) {
this.grupKodu3 = grupKodu3;
}

/**
* 
* @return
* The grupKodu4
*/
public Object getGrupKodu4() {
return grupKodu4;
}

/**
* 
* @param grupKodu4
* The grup_kodu4
*/
public void setGrupKodu4(Object grupKodu4) {
this.grupKodu4 = grupKodu4;
}

/**
* 
* @return
* The grupKodu5
*/
public Object getGrupKodu5() {
return grupKodu5;
}

/**
* 
* @param grupKodu5
* The grup_kodu5
*/
public void setGrupKodu5(Object grupKodu5) {
this.grupKodu5 = grupKodu5;
}

/**
* 
* @return
* The satisFiyati1
*/
public long getSatisFiyati1() {
return satisFiyati1;
}

/**
* 
* @param satisFiyati1
* The satis_fiyati1
*/
public void setSatisFiyati1(long satisFiyati1) {
this.satisFiyati1 = satisFiyati1;
}

/**
* 
* @return
* The satisFiyati2
*/
public long getSatisFiyati2() {
return satisFiyati2;
}

/**
* 
* @param satisFiyati2
* The satis_fiyati2
*/
public void setSatisFiyati2(long satisFiyati2) {
this.satisFiyati2 = satisFiyati2;
}

/**
* 
* @return
* The satisFiyati3
*/
public long getSatisFiyati3() {
return satisFiyati3;
}

/**
* 
* @param satisFiyati3
* The satis_fiyati3
*/
public void setSatisFiyati3(long satisFiyati3) {
this.satisFiyati3 = satisFiyati3;
}

/**
* 
* @return
* The satisFiyati4
*/
public long getSatisFiyati4() {
return satisFiyati4;
}

/**
* 
* @param satisFiyati4
* The satis_fiyati4
*/
public void setSatisFiyati4(long satisFiyati4) {
this.satisFiyati4 = satisFiyati4;
}

/**
* 
* @return
* The satisFiyati5
*/
public long getSatisFiyati5() {
return satisFiyati5;
}

/**
* 
* @param satisFiyati5
* The satis_fiyati5
*/
public void setSatisFiyati5(long satisFiyati5) {
this.satisFiyati5 = satisFiyati5;
}

/**
* 
* @return
* The satisIskontosu1
*/
public long getSatisIskontosu1() {
return satisIskontosu1;
}

/**
* 
* @param satisIskontosu1
* The satis_iskontosu1
*/
public void setSatisIskontosu1(long satisIskontosu1) {
this.satisIskontosu1 = satisIskontosu1;
}

/**
* 
* @return
* The satisIskontosu2
*/
public long getSatisIskontosu2() {
return satisIskontosu2;
}

/**
* 
* @param satisIskontosu2
* The satis_iskontosu2
*/
public void setSatisIskontosu2(long satisIskontosu2) {
this.satisIskontosu2 = satisIskontosu2;
}

/**
* 
* @return
* The satisIskontosu3
*/
public long getSatisIskontosu3() {
return satisIskontosu3;
}

/**
* 
* @param satisIskontosu3
* The satis_iskontosu3
*/
public void setSatisIskontosu3(long satisIskontosu3) {
this.satisIskontosu3 = satisIskontosu3;
}

/**
* 
* @return
* The satisIskontosu4
*/
public long getSatisIskontosu4() {
return satisIskontosu4;
}

/**
* 
* @param satisIskontosu4
* The satis_iskontosu4
*/
public void setSatisIskontosu4(long satisIskontosu4) {
this.satisIskontosu4 = satisIskontosu4;
}

/**
* 
* @return
* The satisIskontosu5
*/
public long getSatisIskontosu5() {
return satisIskontosu5;
}

/**
* 
* @param satisIskontosu5
* The satis_iskontosu5
*/
public void setSatisIskontosu5(long satisIskontosu5) {
this.satisIskontosu5 = satisIskontosu5;
}

/**
* 
* @return
* The satisIskontosu6
*/
public long getSatisIskontosu6() {
return satisIskontosu6;
}

/**
* 
* @param satisIskontosu6
* The satis_iskontosu6
*/
public void setSatisIskontosu6(long satisIskontosu6) {
this.satisIskontosu6 = satisIskontosu6;
}

/**
* 
* @return
* The satisVadeKodu1
*/
public Object getSatisVadeKodu1() {
return satisVadeKodu1;
}

/**
* 
* @param satisVadeKodu1
* The satis_vade_kodu1
*/
public void setSatisVadeKodu1(Object satisVadeKodu1) {
this.satisVadeKodu1 = satisVadeKodu1;
}

/**
* 
* @return
* The satisVadeKodu2
*/
public Object getSatisVadeKodu2() {
return satisVadeKodu2;
}

/**
* 
* @param satisVadeKodu2
* The satis_vade_kodu2
*/
public void setSatisVadeKodu2(Object satisVadeKodu2) {
this.satisVadeKodu2 = satisVadeKodu2;
}

/**
* 
* @return
* The satisVadeKodu3
*/
public Object getSatisVadeKodu3() {
return satisVadeKodu3;
}

/**
* 
* @param satisVadeKodu3
* The satis_vade_kodu3
*/
public void setSatisVadeKodu3(Object satisVadeKodu3) {
this.satisVadeKodu3 = satisVadeKodu3;
}

/**
* 
* @return
* The satisVadeKodu4
*/
public Object getSatisVadeKodu4() {
return satisVadeKodu4;
}

/**
* 
* @param satisVadeKodu4
* The satis_vade_kodu4
*/
public void setSatisVadeKodu4(Object satisVadeKodu4) {
this.satisVadeKodu4 = satisVadeKodu4;
}

/**
* 
* @return
* The satisVadeKodu5
*/
public Object getSatisVadeKodu5() {
return satisVadeKodu5;
}

/**
* 
* @param satisVadeKodu5
* The satis_vade_kodu5
*/
public void setSatisVadeKodu5(Object satisVadeKodu5) {
this.satisVadeKodu5 = satisVadeKodu5;
}

/**
* 
* @return
* The satisFiyatKilidi
*/
public Object getSatisFiyatKilidi() {
return satisFiyatKilidi;
}

/**
* 
* @param satisFiyatKilidi
* The satis_fiyat_kilidi
*/
public void setSatisFiyatKilidi(Object satisFiyatKilidi) {
this.satisFiyatKilidi = satisFiyatKilidi;
}

/**
* 
* @return
* The isk1Kilidi
*/
public long getIsk1Kilidi() {
return isk1Kilidi;
}

/**
* 
* @param isk1Kilidi
* The isk1_kilidi
*/
public void setIsk1Kilidi(long isk1Kilidi) {
this.isk1Kilidi = isk1Kilidi;
}

/**
* 
* @return
* The isk2Kilidi
*/
public long getIsk2Kilidi() {
return isk2Kilidi;
}

/**
* 
* @param isk2Kilidi
* The isk2_kilidi
*/
public void setIsk2Kilidi(long isk2Kilidi) {
this.isk2Kilidi = isk2Kilidi;
}

/**
* 
* @return
* The isk3Kilidi
*/
public long getIsk3Kilidi() {
return isk3Kilidi;
}

/**
* 
* @param isk3Kilidi
* The isk3_kilidi
*/
public void setIsk3Kilidi(long isk3Kilidi) {
this.isk3Kilidi = isk3Kilidi;
}

/**
* 
* @return
* The isk4Kilidi
*/
public long getIsk4Kilidi() {
return isk4Kilidi;
}

/**
* 
* @param isk4Kilidi
* The isk4_kilidi
*/
public void setIsk4Kilidi(long isk4Kilidi) {
this.isk4Kilidi = isk4Kilidi;
}

/**
* 
* @return
* The isk5Kilidi
*/
public long getIsk5Kilidi() {
return isk5Kilidi;
}

/**
* 
* @param isk5Kilidi
* The isk5_kilidi
*/
public void setIsk5Kilidi(long isk5Kilidi) {
this.isk5Kilidi = isk5Kilidi;
}

/**
* 
* @return
* The isk6Kilidi
*/
public long getIsk6Kilidi() {
return isk6Kilidi;
}

/**
* 
* @param isk6Kilidi
* The isk6_kilidi
*/
public void setIsk6Kilidi(long isk6Kilidi) {
this.isk6Kilidi = isk6Kilidi;
}

/**
* 
* @return
* The satisFiyatParaBirimi
*/
public String getSatisFiyatParaBirimi() {
return satisFiyatParaBirimi;
}

/**
* 
* @param satisFiyatParaBirimi
* The satis_fiyat_para_birimi
*/
public void setSatisFiyatParaBirimi(String satisFiyatParaBirimi) {
this.satisFiyatParaBirimi = satisFiyatParaBirimi;
}

/**
* 
* @return
* The faturaAltiIndirimlereDahil
*/
public long getFaturaAltiIndirimlereDahil() {
return faturaAltiIndirimlereDahil;
}

/**
* 
* @param faturaAltiIndirimlereDahil
* The fatura_alti_indirimlere_dahil
*/
public void setFaturaAltiIndirimlereDahil(long faturaAltiIndirimlereDahil) {
this.faturaAltiIndirimlereDahil = faturaAltiIndirimlereDahil;
}

}

遵循此方法后,您的问题应该得到解决!

答案 1 :(得分:0)

Gson gson = new GsonBuilder()
     .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
     .setDateFormat("yyyy-MM-dd")
     .create();

Retrofit retrofit = new Retrofit.Builder()  
     .baseUrl("https://api.github.com")
     .addConverterFactory(GsonConverterFactory.create(gson))
     .build();