[英]Convert ArrayList<Custom> to gson in Java Android
下午好。 我不明白為什么代碼在 Google 市場上發布后不起作用。 在 android studio 代碼中發布之前
ArrayList<TableAccount> tableAccount = getTableAccount();
String jsonStr = new Gson().toJson(tableAccount);
結果:
Log.d(TAG, "RESULT: " + jsonStr);
RESULT: [{"name":"payment","valueFloat":0.0,"valueInt":0,"valueStr":"no"}]
但是,發布后,我看到:
Log.d(TAG, "RESULT: " + jsonStr);
RESULT: [{"a":"payment","b":"no","c":0,"d":0.0}]
為什么會出現字母abc?
鑰匙在哪里消失了? [“名稱”,“valueFloat”,“valueInt”,“valueStr”]
顯然,您為release
版本打開了 ProGuard/R8,並且它的混淆模式重命名了您的字段。
這里最大的教訓是確保在將release
版本上傳到 Google Play 之前對其進行測試。
要解決此問題,您可以:
@SerializedName
注釋來教 Gson 使用什么名稱,而不是默認使用 Java 反射來查找字段的名稱(因為混淆重命名了這些字段)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.