Convertir datatable a json

Si alguna vez te sale un problema con referencia circular al pasar un datatable a un json, primero lo que hay que hacer es pasar un datatable a una lista de objetos...  Y esa lista es la que sí tienes que serializar.

Aquí está el código para pasar el datatable a la lista y posteriormente el código para pasar a json:

public List<Dictionary<string, object>> ValuesSelectInsuranceAndValidationDoc = new List<Dictionary<string,object>>();

DataTable auxTable = _presenter.View.StateOrder; //Esta es la tabla
            List<Dictionary<string, object>> rowsStateOrder = new List<Dictionary<string, object>>();
            Dictionary<string, object> row;
            if (auxTable != null)
            {
                foreach (DataRow dr in auxTable.Rows)
                {
                    row = new Dictionary<string, object>();
                    foreach (DataColumn col in auxTable.Columns)
                    {
                        row.Add(col.ColumnName, dr[col]);
                    }
                    rowsStateOrder.Add(row);
                }
                ValuesSelectInsuranceAndValidationDoc = rowsStateOrder;
            }

string json = "";            
json = new System.Web.Script.Serialization.JavaScriptSerializer().
                                Serialize(ValuesSelectInsuranceAndValidationDoc );


Espero les sirva...

Sean felices! :) Y siéntanse libres de opinar ;)

No hay comentarios:

Publicar un comentario