【问题标题】:How to DataTable to JSON in Asp.Net如何在 Asp.Net 中将 DataTable 转换为 JSON
【发布时间】:2015-10-16 11:00:36
【问题描述】:

我有我的三个数据表,我想将它们放入一个 JSON 数组中。

我想做示例 json。 我有我的三个数据表,我想将它们放入一个 JSON 数组中。

我想做json示例

DataTable dt1=new DataTable("Table1")

DataTable dt2=new DataTable("Table2")

DataTable dt3=new DataTable("Table3")

var data = {
        "DataTableName1":
            [
                {
                    "Name": "Cemal",
                    "Surname": "Kaya",
                    "Age": "30"
                },
                {
                    "Name": "Ali",
                    "Surname": "Yaman",
                    "Age": "10"
                }
            ],
        "DataTableName2":
            [
                {
                    "Marka": "Opel",
                    "Model": "1998"
                },
                {
                    "Marka": "renault",
                    "Model": "2015"
                }
            ],
        "DataTableName3":
            [
                {
                    "Marka": "Opel",
                    "Model": "1998"
                },
                {
                    "Marka": "renault",
                    "Model": "2015"
                }
            ]

    };

-:更新:-

正如@Izzy 给出的答案,但我仍然有问题。我想使用DataTable中的数据

 SqlDataAdapter adp = new SqlDataAdapter("myTable",con);
 DataTable dt = new DataTable();
 adp.Fill(dt);

DataTableName1 = new List<DataTableName1>
    {
        new DataTableName1
        {
            Name = dt.Rows[i]["Name"],
            Surname = dt.Rows[i]["Surname"],
            Age = dt.Rows[i]["Age"]
        }
    }

请帮帮我,我快要发疯了

【问题讨论】:

  • @Baha,我用编辑你的问题来替换你的答案。你不能给出问题或想法作为答案。您只需再次编辑您的问题并更新它。我建议您删除上面已经附加的答案。

标签: asp.net json datatable


【解决方案1】:

使用您的JSON 示例,我使用json2csharp 生成相关类。

public class DataTableName1
{
public string Name { get; set; }
public string Surname { get; set; }
public string Age { get; set; }
}

public class DataTableName2
{
public string Marka { get; set; }
public string Model { get; set; }
}

public class DataTableName3
{
public string Marka { get; set; }
public string Model { get; set; }
}

public class RootObject
{
public List<DataTableName1> DataTableName1 { get; set; }
public List<DataTableName2> DataTableName2 { get; set; }
public List<DataTableName3> DataTableName3 { get; set; }
}

然后我使用了WebMethod Attribute,所以我可以使用ajax调用函数。

后端 C# 代码如下所示:

[WebMethod]
public static string Test()
{
    var root = new RootObject
    {
        DataTableName1 = new List<DataTableName1>
        {
            new DataTableName1
            {
                Name = "Cemal",
                Surname = "Kaya",
                Age = "30"
            }
        },
        DataTableName2 = new List<DataTableName2>
        {
            new DataTableName2
            {
                Marka = "Opel",
                Model = "1998"
            }
        },
        DataTableName3 = new List<DataTableName3>
        {
            new DataTableName3
            {
                Marka = "Opel",
                Model = "1998"
            }
        }
    };
    var js = new JavaScriptSerializer();
    var strJson = js.Serialize(root);
    return strJson;
}

使用JavaScriptSerializer Class我们可以Serialize我们的根对象,所以它以JSON格式返回。

最后对我们的后端函数进行ajax 调用。

<script>
    var dataFromAjax;
    $(document).ready(function () {
        $.ajax({
            type: "POST",
            url: "Test.aspx/Test",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                dataFromAjax = JSON.parse(data.d);
            }
        });
    });
</script>

最终的结果是这样的。

{
"DataTableName1": [
    {
        "Name": "Cemal",
        "Surname": "Kaya",
        "Age": "30"
    }
],
"DataTableName2": [
    {
        "Marka": "Opel",
        "Model": "1998"
    }
],
"DataTableName3": [
    {
        "Marka": "Opel",
        "Model": "1998"
    }
]}

【讨论】:

  • 不客气,如果解决方案对您有帮助,请接受,以便其他人也可以受益
  • 我需要帮助。我写了:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多