Retrofit + Gson 无法解析其他设备上的某些 LOWER_CASE_WITH_UNDERSCORES

1 parsing android json gson retrofit

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

\n\n

这是我的服务:

\n\n
 // specify gson parse behav\n    Gson gson = new GsonBuilder()\n            .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)\n            .setDateFormat("yyyy-MM-dd")\n            .create();\n\n    // set http client timeout\n    OkHttpClient okHttpClient = new OkHttpClient();\n    okHttpClient.setReadTimeout(Constants.SERVICE_TIME_OUT, TimeUnit.SECONDS);\n    okHttpClient.setConnectTimeout(Constants.SERVICE_TIME_OUT, TimeUnit.SECONDS);\n\n    // get rest builder\n    RestAdapter.Builder builder = new RestAdapter.Builder()\n            .setEndpoint(baseUrl)\n            .setConverter(new GsonConverter(gson))\n            .setClient(new OkClient(okHttpClient));\n\n    // build\n    RestAdapter adapter = builder.build();\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的 Json 对象

\n\n
{\n\n"data": [\n    {\n      "r_sayac": 44,\n      "satis_tip_id": "02",\n      "satis_tipi": "Vadeli Sat\xc4\xb1\xc5\x9f",\n      "aciklama": null,\n      "hareket_tipi_id": "32021",\n      "sak_kontrol_no": "02",\n      "fiyat_tipi": null,\n      "depo_no": "0",\n      "tesis_no": "01",\n      "stok_tipi_no": "01",\n      "iade_hareket_tipi_id": "10031",\n      "kampanyalari_otomatik_uygula": 1\n    }\n  ],\n  "statusCode": 200,\n  "message": "\xc4\xb0\xc5\x9flem Ba\xc5\x9far\xc4\xb1 ila ger\xc3\xa7ekle\xc5\x9fti"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

和我的 POJO 类

\n\n
public class SatisTipleriSatir {\n\n   private Integer rSayac;\n   private String satisTipId;\n   private String satisTipi;\n   private String hareketTipiId;\n   private String sakKontrolNo;\n   private String fiyatTipi;\n   private String depoNo;\n   private String tesisNo;\n   private String stokTipiNo;\n   private String iadeHareketTipiId;\n   private Integer kampanyalariOtomatikUygula;\n\n   // getters and setters go here..\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我无法解析像“satis_tip_id”:“02”这样的字段以及其他类中的更多字段,就像这个一样。

\n\n

班级

\n\n
private Double satisFiyati1;\nprivate Double satisFiyati2;\nprivate Double satisFiyati3;\nprivate Double satisFiyati4;\nprivate Double satisFiyati5;\nprivate Double satisIskontosu1;\nprivate Double satisIskontosu2;\nprivate Double satisIskontosu3;\nprivate Double satisIskontosu4;\nprivate Double satisIskontosu5;\nprivate Double satisIskontosu6;\nprivate String satisVadeKodu1;\nprivate String satisVadeKodu2;\nprivate String satisVadeKodu3;\nprivate String satisVadeKodu4;\nprivate String satisVadeKodu5;\n
Run Code Online (Sandbox Code Playgroud)\n\n

杰森

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

这些字段解析失败

\n\n
"satis_iskontosu1": 0,\n"satis_iskontosu2": 0,\n"satis_iskontosu3": 0,\n"satis_iskontosu4": 0,\n"satis_iskontosu5": 0,\n"satis_iskontosu6": 0,\n"fatura_alti_indirimlere_dahil": 1\n
Run Code Online (Sandbox Code Playgroud)\n

小智 5

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();


Run Code Online (Sandbox Code Playgroud)