6

私が構築しているプロジェクトで使用するために、データセットをPostgreSQLデータベースから JSONに変換する簡単な方法を探していました。

JSON を使用するのはこれが初めてで、これを行う簡単な方法を見つけるのは非常に難しいことがわかりました。現在、StringBuilder を使用してデータセット内の情報から JSON 文字列を作成していますが、名前空間を使用して.NET 3.5でこれを非常に簡単に行うことができると聞いていSystem.Runtime.Serializationますが、まだ単純なものを見つけていません。これがどのように行われるかについての記事またはブログ!これを行う最も簡単な方法は何ですか?

4

5 に答える 5

7

Newtonsofts Json.Netを使用し、DataSet から JSON へのコンバーターを作成するために使用されるJSON.NET および JavaScriptSerializer の DataTable JSON Serializationを確認してください。

于 2008-12-10T12:07:00.267 に答える
5

このトピックを見ている他の人のために:

json_encode( PHP ) が ASP.Net で行うように、データセットを JSON 配列に変換する最も簡単な方法を次に示します。

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 に答える