-
Type: Bug
-
Resolution: Fixed
-
Priority: Minor
-
None
-
Affects Version/s: 2.4.20
-
Component/s: None
-
None
MapがMapの配列を持つような場合にJSON形式には変換できるが、
JSONを元のオブジェクトに復元しようとするとClassCastExceptionが発生する。
以下のようなテストコードで試せる。
Map child1 = new HashMap(); child1.put("aaa", new String[]{"aaa", "bbb", "ccc"}); Map child2 = new HashMap(); child2.put("bbb", new String[]{"AAA", "BBB", "CCC"}); Map parent = new HashMap(); parent.put("map", new Map[]{child1, child2}); String s = JSONSerializer.serialize(parent); System.out.println(s);//ここまでは問題なし。 Map eval = (Map) JSONSerializer.eval(s); assertNotNull(eval); Object o = eval.get("map"); Map[] maps = (Map[]) o;//ここでClassCastExceptionが発生。 Map ret = maps[0]; System.out.println(ret.get("aaa"));