Better approach: realized by convert map to object and overwrite operator[]
/// when data is hierarchical map
/// data: {
/// 'start': {'a':"01/01/200$i", 'b':'ccc'}
/// })
grid.GridOptions opt = new grid.GridOptions()..dataItemColumnValueExtractor=mapExtract;
grid.SlickGrid sg= new grid.SlickGrid.fromOpt(el,data,column,opt);
/// extractor function example
mapExtract(Map data, grid.Column col){
if(col.field=='start') return data['a'];
return data[col.field];
}