Uploaded image for project: 'S2Container'
  1. S2Container
  2. CONTAINER-155

JSONSerializerでMapのネストなどが対応されていない。

XMLWordPrintable

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Minor 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"));
      

            Assignee:
            shot shot
            Reporter:
            shot shot
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: