0

asp.netでwdcalendarを使用しています。データベースからレコードを取得したら、JSON 文字列をページに返す必要があります。DB からのレコードを含む DataTable がありますが、それをこの正確な形式に変換する方法がわかりません。

{ 
  "end" : "09/29/2013 23:59",
  "error" : null,
  "events" : [ [ 1,
        "test",
        "09/26/2013 08:11",
        "09/26/2013 08:08",
        0,
        0,
        0,
        "1",
        1,
        "loca",
        ""
      ],
      [ 2,
        "test2",
        "09/27/2013 08:11",
        "09/27/2013 08:08",
        0,
        0,
        0,
        "1",
        1,
        "loca",
        ""
      ]
    ],
  "issort" : true,
  "start" : "09/23/2013 00:00"
}

データベースからの 2 つの行を含む別のデータを表示するために新しい行を追加しました。最後に、上記の最後の行であるデータに追加情報が追加されます。

文字列を手動で作成するよりも良い方法があることを願っています。

ありがとう。

4

3 に答える 3

1

これを使って、

public string GetJson(DataTable dt)
{
    System.Web.Script.Serialization.JavaScriptSerializer serializer = new 

    System.Web.Script.Serialization.JavaScriptSerializer();
    List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
    Dictionary<string, object> row = null;

    foreach (DataRow dr in dt.Rows)
    {
        row = new Dictionary<string, object>();
        foreach (DataColumn col in dt.Columns)
        {
            row.Add(col.ColumnName.Trim(), dr[col]);
        }
        rows.Add(row);
    }
    return serializer.Serialize(rows);
}

または使用しJSON.NETます。

string json = JsonConvert.SerializeObject(table, new Serialization.DataTableConverter());
var o = JsonConvert.DeserializeObject<DataTable>(json, new Serialization.DataTableConverter());
于 2013-09-27T05:00:47.090 に答える