I have been searching for a simple way to convert a dataset from a PostgreSQL database to JSON for use in a project that I am building.
This is my first time using J
For others looking at this topic:
Here is the simplest way to convert a dataset to a JSON array as json_encode (PHP) does with ASP.Net:
using Newtonsoft.Json;
public static string ds2json(DataSet ds) {
return JsonConvert.SerializeObject(ds, Formatting.Indented);
}
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();
}
var JObject = eval('(' + JSONString + ');');
for(var i = 0; i < JObject .Employees.length; i++)
{
var val1 = JObject.Employees[i].EmployeeID;
var val2 = JObject.Employees[i].NationalIDNumber;
var val3 = JObject.Employees[i].Title;
var val4 = JObject.Employees[i].BirthDate;
var val5 = JObject .Employees[i].HireDate ;
}
public static T WriteJson<T>(this System.Data.DataSet dataSet)
{
try
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(dataSet.GetXml());
return (T)Convert.ChangeType(JsonConvert.SerializeXmlNode(doc).Replace("null", "\"\"").Replace("'", "\'"), typeof(T));
}
catch (Exception ex)
{
throw ex;
}
}
Use Newtonsofts Json.Net and check out DataTable JSON Serialization in JSON.NET and JavaScriptSerializer where it's used to create a DataSet-to-JSON converter.
Maybe you've heard about the system.runtime.serialization.json namespace in the newly announced .NET Framework 4.0.