1
我試圖讓Gson
沒有浮點爲多頭,而不是作爲雙打,因爲它defaultly做解析值:讓GSON解析整數,而不是作爲花車
Gson gson = new GsonBuilder()
.registerTypeAdapter(Object.class, (JsonDeserializer<Object>) (json, type, context) -> {
// we don't want integer values to be parsed as floats
String value = json.getAsJsonPrimitive().getAsString();
if (value.matches("\\d+")) {
return Long.valueOf(value);
} else {
return context.deserialize(json, type);
}
}).create();
...
gson.fromJson(payload);
我只是想測試一下,渡過值包含.
,如果不包含,則將其解析爲Long
。否則使用默認的解析方法。
但是,當我放置斷點時,該方法從不會被調用。我想我以錯誤的方式註冊適配器。
EDIT1:Json可能包含帶有字符串,整數,雙精度和貼圖的列表。我需要一個通用解決方案。
EDIT2:我也試過品種.registerTypeAdapter(Number.class
或.registerTypeAdapter(Double.class
沒有效果。還沒有叫。