serializar - Conversión de un conjunto de datos a JSON con.NET 3.5 en C#
recorrer json c# (4)
Quizás hayas oído hablar del espacio de nombres system.runtime.serialization.json en el recientemente anunciado .NET Framework 4.0 .
He estado buscando una manera simple de convertir un conjunto de datos de una base de datos PostgreSQL a JSON para usar en un proyecto que estoy construyendo.
Esta es la primera vez que uso JSON, y me ha resultado realmente complicado encontrar una forma sencilla de hacerlo. He estado usando un StringBuilder en este momento para crear una cadena JSON a partir de la información en el conjunto de datos, pero he escuchado que es posible hacer esto muy simplemente con .NET 3.5 usando el System.Runtime.Serialization
nombres System.Runtime.Serialization
, aunque tengo aún para encontrar un artículo o blog simple sobre cómo se hace esto! ¿Cuál es la forma más fácil de hacer esto?
Use Newtonsofts Json.Net y revise la serialización JSON de DataTable en JSON.NET y JavaScriptSerializer donde se usa para crear un convertidor DataSet-to-JSON.
public static string GetJSONString(DataTable Dt)
{
string[] StrDc = new string[Dt.Columns.Count];
string HeadStr = string.Empty;
for (int i = 0; i < Dt.Columns.Count; i++)
{
StrDc[i] = Dt.Columns[i].Caption;
HeadStr += "/"" + StrDc[i] + "/" : /"" + StrDc[i] + i.ToString() + "¾" + "/",";
}
HeadStr = HeadStr.Substring(0, HeadStr.Length - 1);
StringBuilder Sb = new StringBuilder();
Sb.Append("{/"" + Dt.TableName + "/" : [");
for (int i = 0; i < Dt.Rows.Count; i++)
{
string TempStr = HeadStr;
Sb.Append("{");
for (int j = 0; j < Dt.Columns.Count; j++)
{
TempStr = TempStr.Replace(Dt.Columns[j] + j.ToString() + "¾", Dt.Rows[i][j].ToString());
}
Sb.Append(TempStr + "},");
}
Sb = new StringBuilder(Sb.ToString().Substring(0, Sb.ToString().Length - 1));
Sb.Append("]}");
return Sb.ToString();
}
Para otros que miran este tema:
Esta es la forma más sencilla de convertir un conjunto de datos en una matriz JSON como lo hace json_encode
( PHP ) con ASP.Net:
using Newtonsoft.Json;
public static string ds2json(DataSet ds) {
return JsonConvert.SerializeObject(ds, Formatting.Indented);
}