import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import java.util.*;java
@Slf4j
public class MapUtils {
private static final ObjectMapper MAPPER = new ObjectMapper();
static {
MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
public static T convertToObject(Map data, Class<T> clazz) {
try {
T result = MAPPER.convertValue(data, MAPPER.getTypeFactory().constructType(clazz));
if (log.isInfoEnabled()) {
log.info("converted {} to a {} object: {}",
JsonUtils.toJson(data), clazz.getSimpleName(), JsonUtils.toJson(result));
}
return result;
} catch (Exception e) {
log.error("converting failed! data: {}, class: {}",
JsonUtils.toJson(data), clazz.getSimpleName(), e);
}
return null;
}
public static List convertToObjects(List
if (CollectionUtils.isEmpty(datas) || Objects.isNull(clazz)) {
return Collections.emptyList();
}
List result = new ArrayList<>(datas.size());
if (CollectionUtils.isNotEmpty(datas)) {
for (Map data : datas) {
T t = convertToObject(data, clazz);
result.add(t);
}
}
return result;
}
}