Net.sf.ezmorph.bean.MorphDynaBean cannot be cast to java.util.Mapの解決方法

1657 ワード

表のコンポーネントを開発する時、マルチレベルのヘッダーを設置する需要があって、フロントエンドのjsonデータのフォーマットはList>>>>>>、つまりList>フォーマットで、直接使うならば
List> querys=(List>)JSONArray.toList(chosendimes,Map.class);
for (Iterator iterator = querys.iterator(); iterator.hasNext();) {
    Map map = (Map) iterator.next();
    List list = (ArrayList) map.get("children");
    for (Iterator iterator2 = list.iterator(); iterator2.hasNext();) {
	Map map2 = (Map) iterator2.next();
変換すると、赤いコードに上記のエラーが報告されます.
jsonのデータフォーマットを操作する場合、データ型が指定されていない場合は、基本タイプまたはStringタイプのみであり、複雑なデータ型は発生しません.修正方法は次のとおりです.
Map typeM=new HashMap();
typeM.put("children",HashMap.class);
List> querys=(List>)JSONArray.toList(chosendimes,Map.class,typeM);
for (Iterator iterator = querys.iterator(); iterator.hasNext();) {
    Map map = (Map) iterator.next();
    List list = (ArrayList) map.get("children");
    for (Iterator iterator2 = list.iterator(); iterator2.hasNext();) {
	Map map2 = (Map) iterator2.next();