/** * Converts type of all list elements to match the component type. */ private Object generifyList(final List list, final Class componentType) { for (int i = 0; i < list.size(); i++) { Object element = list.get(i); if (element != null) { if (element instanceof Map) { Object bean = map2bean((Map) element, componentType); list.set(i, bean); } else { Object value = convert(element, componentType); list.set(i, value); } } } return list; }
protected Object convert(final Object value, final Class targetType) { Class valueClass = value.getClass(); if (valueClass == targetType) { return value; } if (value instanceof Map) { if (targetType == Map.class) { return value; } return map2bean((Map) value, targetType); } try { return TypeConverterManager.get().convertType(value, targetType); } catch (Exception ex) { throw new JsonException("Type conversion failed", ex); } }
value = map2bean((Map) value, propertyType);
Map map = (Map) value; value = mapToBean.map2bean(map, null);
target = mapToBean.map2bean((Map) target, targetType);