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'},
/// 'end': 'xxx'
/// })
grid.GridOptions opt = new grid.GridOptions()..dataItemColumnValueExtractor=mapExtract;
grid.SlickGrid sg= new grid.SlickGrid.fromOpt(el,data,column,opt);
/// extractor function example
mapExtract(Map row, grid.Column col){
if(col.field=='start') return row['start']['a'];
return row[col.field];
}