code: public static void populate(Map<?,?> aValues, Object bean, PropertyConverter<Object, Object> valueConverter)
     {
          Object key = null;
  	    
  	    Object keyValue;
  	    try
  		{
  
  			for(Map.Entry<?, ?> entry : aValues.entrySet())
  			 {
  			     key = entry.getKey();
  			     
  			   	 keyValue = entry.getValue();
  			    	 
  			    	 PropertyDescriptor desc =  getPropertyDescriptor(bean, String.valueOf(key));
  			    	 if(desc == null)
  		    			 continue; //skip
  			    	 
  			    	 if(desc.getWriteMethod() == null)
  			    		 continue;
  			    	 
  			    	 if(valueConverter!= null)
  			    	 {
  			    		 Class<?> aClass = desc.getPropertyType();
  			    		 
  			    		 keyValue = valueConverter.convert(keyValue,aClass);
  			    	 }
  			    
  			    	 Method invoke = desc.getWriteMethod();
  			    	 invoke.invoke(bean, keyValue);
  		  }
  	}
  	catch (Exception e)
  	{
  		throw new FormatException(e.getMessage()+" values:"+aValues,e);
  	}
   }
docs: Support nested map objects
  @param aValues the key/value properties
  @param bean the object to write to
  @param valueConverter the value converter strategy object