6

我一直在寻找一种简单的方法来将数据集从PostgreSQL数据库转换为 JSON,以便在我正在构建的项目中使用。

这是我第一次使用 JSON,我发现找到一个简单的方法来做这件事真的很棘手。目前我一直在使用 StringBuilder 从数据集中的信息创建 JSON 字符串,但我听说使用命名空间的.NET 3.5 可以非常简单地做到这一点System.Runtime.Serialization,尽管我还没有找到一个简单的关于如何做到这一点的文章或博客!最简单的方法是什么?

4

5 回答 5

7

使用 Newtonsofts Json.Net并查看JSON.NET 和 JavaScriptSerializer中的 DataTable JSON 序列化,它用于创建 DataSet-to-JSON 转换器。

于 2008-12-10T12:07:00.267 回答
5

对于其他关注此主题的人:

这是将数据集转换为 JSON 数组的最简单方法,就像json_encode( PHP ) 对 ASP.Net 所做的那样:

using Newtonsoft.Json;

public static string ds2json(DataSet ds) {
    return JsonConvert.SerializeObject(ds, Formatting.Indented);
}
于 2013-06-07T13:39:47.353 回答
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();
}

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 ;

}
于 2011-04-20T07:53:17.147 回答
-1

也许您听说过新发布的.NET Framework 4.0中的system.runtime.serialization.json命名空间。

于 2008-12-10T12:45:28.380 回答
-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;
    }
}
于 2020-10-13T06:32:09.597 回答