前言
項目中遇到一種超級惡心的事情说墨,后臺返回數(shù)據(jù)類型不固定骏全,有數(shù)據(jù)時是個對象,沒數(shù)據(jù)時返回的是“”尼斧。
這個時候如果定義成對象姜贡,使用gson框架解析會崩潰,想到一種解決方案棺棵,就是定義這個類型為object楼咳。
解析出類型后進行判斷,如果有數(shù)據(jù)就轉(zhuǎn)化成對象烛恤。
遇坑
這個時候獲取到的數(shù)據(jù)返回類型是key-value LinkedTreeMap類型的母怜,使用tostring 打印出來是{a=1,b=2}這種形式,完全沒有辦法轉(zhuǎn)成對象缚柏。所以又了下面這個疑問苹熏?
gson.internal.LinkedTreeMap如何轉(zhuǎn)化成javabean對象?
Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
String jsonStr = gson.toJson(linkedTreeMap);
JavaBean bean = gson.fromJson(jsonStr,JavaBean.class);
完美解決
總結(jié)
真是坑,后臺返回數(shù)據(jù)死活不改船惨,只能這邊解決柜裸,經(jīng)歷千辛萬苦后終于解決了缕陕。