protected Map<? extends K, ? extends V> doDeserialize(FlowPropertyProvider flowPropertyProvider, FlowPropertyDefinition flowPropertyDefinition, DataClassDefinition dataClassDefinition, Object serializedObject) {
JSONObject jsonObject = JSONObject.toJsonObject(serializedObject);
Map<K, V> map = new LinkedHashMap<K, V>();
for(String key : jsonObject.keys() ) {
Object object = jsonObject.get(key);
DataClassDefinition keyDataClassDefinition = dataClassDefinition.getKeyDataClassDefinition();
K realKey = (K) keyDataClassDefinition.deserialize(flowPropertyProvider, flowPropertyDefinition, key);
DataClassDefinition elementDataClassDefinition = dataClassDefinition.getElementDataClassDefinition();
V realValue = (V) elementDataClassDefinition.deserialize(flowPropertyProvider, flowPropertyDefinition, object);
map.put(realKey, realValue);
}
return map;
}