2008-12-10 24 views
6

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.Conversión de un conjunto de datos a JSON usando .NET 3.5 en C#

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 hacerlo de manera muy sencilla con .NET 3.5 usando el espacio de nombres System.Runtime.Serialization, aunque todavía tengo que encontrar un simple artículo o blog sobre cómo se hace esto! ¿Cuál es la forma más fácil de hacer esto?

Respuesta

0

Quizás hayas oído hablar del espacio de nombres system.runtime.serialization.json en el recién anunciado .NET Framework 4.0.

+0

tengo intenté usar el espacio de nombres serialization.json, pero fue en vano ... Parece que hay muchos ejemplos sobre cómo usarlo y JavaScriptSerializer y DataContractJsonSerializer están dando salida a XML –

0
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(); 
} 
+0

var JObject = eval ('(' + JSONString + ') ; '); for (var i = 0; i DineshHona

4

Para otros mirando este tema:

Esta es la forma más sencilla de convertir un conjunto de datos a una matriz JSON como json_encode (PHP) lo hace con ASP.Net:

using Newtonsoft.Json; 

public static string ds2json(DataSet ds) { 
    return JsonConvert.SerializeObject(ds, Formatting.Indented); 
}