我一直在寻找一种简单的方法将数据集从PostgreSQL数据库转换为JSON,以便在我正在构建的项目中使用。
这是我第一次使用JSON,我发现找到一种简单的方法很难找到。我一直在使用StringBuilder从数据集中的信息创建一个JSON字符串,但我听说使用System.Runtime.Serialization
命名空间.NET 3.5可以非常简单地执行此操作,虽然我还没有找到一篇关于如何做到的简单文章或博客!最简单的方法是什么?
答案 0 :(得分:6)
使用Newtonsofts Json.Net并查看 DataTable JSON Serialization in JSON.NET and JavaScriptSerializer ,用于创建DataSet-to-JSON转换器。
答案 1 :(得分:4)
对于其他人来说:
以下是将数据集转换为JSON数组的最简单方法,json_encode
(PHP)与ASP.Net相关:
using Newtonsoft.Json;
public static string ds2json(DataSet ds) {
return JsonConvert.SerializeObject(ds, Formatting.Indented);
}
答案 2 :(得分:0)
也许您已经在新宣布的system.runtime.serialization.json中听说过.NET Framework 4.0命名空间。
答案 3 :(得分: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();
}
答案 4 :(得分:-2)
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;
}
}