Consultoría Informática: Programas a medida, Páginas web, Tiendas Online, Posicionamiento en Internet (SEO), Accesibilidad, Usabilidad...

Convertir un DataSet tipado a un DataSet en JSON

WebProgramacion > Recursos sobre informática y tecnología > Programacion > C# > Convertir un DataSet tipado a un DataSet en JSON
C#
Convertir un DataSet tipado a un DataSet en JSON
Convertir un DataSet tipado a un DataSet en JSON

En muchas ocasiones, cuando estamos generando un servicio web, necesitamos generar un String JSON con un DataSet.

Si lo generamos utilizando como fuente en DataSet tipado generado con ADO.NET, nos va a generar unos códigos que en la app móvil nos va a generar problemas. Para evitarlo vamos a ver un método que realizará la conversión del DataSet tipado a un DataSet estándar.

Previamente, tenemos que tener instalado en nuestro Visual Studio las librerías de http://www.newtonsoft.com/json

Necesitamos incluir las siguientes librerías:

using System.Data;
using Newtonsoft.Json;

Y el código del método es el siguiente:

public static String GetDSJSon(System.Data.DataTable tabla_origen, String nombre)
{
   DataSet dsGenerado = new DataSet("dataSet");
   dsGenerado.Namespace = "NetFrameWork";
   DataTable tabla = new DataTable();
   tabla.TableName = nombre;
   for (int i=0;i< tabla_origen.Columns.Count;i++)
   {
      DataColumn columna = new DataColumn(tabla_origen.Columns[i].ColumnName, tabla_origen.Columns[i].DataType);
      tabla.Columns.Add(columna);
   }
   dsGenerado.Tables.Add(tabla);
   for (int i = 0; i < tabla_origen.Rows.Count; i++)
   {
      DataRow newRow = tabla.NewRow();
      for (int j =0;j< tabla_origen.Columns.Count;j++)
      {
         newRow[tabla_origen.Columns[j].ColumnName] = tabla_origen.Rows[i][j];
      }
      tabla.Rows.Add(newRow);
   }
   dsGenerado.AcceptChanges();
   string json = JsonConvert.SerializeObject(dsGenerado, Formatting.Indented);
   return json;
}

Ahora un ejemplo de llamada al método anterior podría ser el siguiente:

String json = Datos.Interfaz.GetDSJSon(dst.vista_portada, "dsEjemplo");

Donde pasamos dst.vista_portada, que es una tabla tipada y el nombre del dataset que vamos a generar.

Enlaces recomendados

Deja tu opinión

la política de privacidad que declaro haber leído.

(*) Campos necesarios. El correo electrónico no será público.