Преобразование набора данных в JSON с использованием .NET 3.5 в C # - PullRequest
6 голосов
/ 10 декабря 2008

Я искал простой способ преобразования набора данных из базы данных PostgreSQL в JSON для использования в проекте, который я строю.

Я впервые использую JSON, и мне было очень сложно найти простой способ сделать это. В настоящее время я использую StringBuilder для создания строки JSON из информации в наборе данных, но я слышал, что это можно сделать очень просто с .NET 3.5 с использованием пространства имен System.Runtime.Serialization хотя мне еще предстоит найти простую статью или блог о том, как это сделать! Какой самый простой способ сделать это?

Ответы [ 4 ]

6 голосов
/ 10 декабря 2008

Используйте Newtonsofts Json.Net и проверьте Сериализация DataTable JSON в JSON.NET и JavaScriptSerializer , где он используется для создания преобразователя DataSet-to-JSON .

4 голосов
/ 07 июня 2013

Для тех, кто ищет эту тему:

Вот самый простой способ преобразовать набор данных в массив JSON, как json_encode ( PHP ) с ASP.Net:

.
using Newtonsoft.Json;

public static string ds2json(DataSet ds) {
    return JsonConvert.SerializeObject(ds, Formatting.Indented);
}
0 голосов
/ 20 апреля 2011
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 голосов
/ 10 декабря 2008

Возможно, вы слышали о system.runtime.serialization.json пространстве имен в недавно объявленном .NET Framework 4.0 .

...