Map<String, Object> へのデシリアライズ

gson の欠点として、以前から悩んでたのが、Map<String, Object> へのデシリアライズで、
数値が、Long 、Integer ではなく、Double に変換されるように認識してしまうことだった。
過去、
Google gson fromJson で、 Map<String, Object> への変換は落とし穴。。。 - Oboe吹きプログラマの黙示録
得体の知れない不明なJSON を GSON で解析する - Oboe吹きプログラマの黙示録
と悩んだあげく、GenericMapDeserializer を、yipuran-gsonhelper に上げてみたものの、
JsonPrimitive のままにしていたので、深いネスト構造の JSONでは、破綻した。

落ち着いて考えれば、再帰呼出しでのデシリアライズをしていなかったのだ。
適宣、Long 、Double にデシリアライズするように、ようやく完成である。

GitHub - yipuran/yipuran-gsonhelper: Google gson use library

ここの、GenericMapDeserializer を作り直した。
Home · yipuran/yipuran-gsonhelper Wiki · GitHub

GenericMapDeserializer の検証は、fromJson で得た Map<String, Object> を
toJson して検証すれば良いだろう