【问题标题】:How to extract DataTable from DataSet which is in JSON format如何从 JSON 格式的 DataSet 中提取 DataTable
【发布时间】:2014-04-15 09:02:31
【问题描述】:

我正在使用 Newtonsoft dll 进行序列化。我目前正在以 Json 格式从 webmethod 返回 DataTable。它工作正常。但我想通过返回 DataSet 而不是 DataTable 来做同样的事情。我尝试了很多方法,但似乎都没有效果。

function GetDropDownData() {
        var myDropDownList = $('.myDropDownLisTId');

        $.ajax({
            type: "POST",
            url: "test.aspx/GetDropDownDataWM",
            data: '{name: "abc" }',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                $.each(jQuery.parseJSON(data.d), function () {
                    myDropDownList.append($("<option></option>").val(this['id']).html(this['name']));
                });
            },
            failure: function (response) {
                alert(response.d);
            }
        });
    }
    function OnSuccess(response) {
        console.log(response.d);
        alert(response.d);
    }

Json 数据表返回:

[{"name":"sam","id":"1"},{"name":"mark","id":"2"}]

Json 数据集返回:

 {"patients":[{"name":"sam","id":"1"},{"name":"mark","id":"2"}],"medications":[{"id":"1","medication":"atenolol"},{"id":"2","medication":"amoxicillin"}]}

小提琴 Demo

var json=jsonds['patients'];var json=data['patients'];

【问题讨论】:

  • 是的,你想从这个数据集中提取数据表等值的问题是什么?
  • 如您所见,我现在正在用数据表填充下拉列表。但我想使用 Dataset 来执行此操作。这样我就不必为不同的下拉菜单一次又一次地向服务器发送请求。我无法从数据集中提取单个数据表。
  • 好的,发布答案
  • 请检查我发布的答案
  • 我做到了。我在那里发表了评论。

标签: c# javascript jquery asp.net json


【解决方案1】:

我终于成功了。

Ajax成功,按如下操作...

var dataSet = jQuery.parseJSON(data.d);
var dataTable = dataSet["patients"];

$.each(dataTable, function () {
    myDropDownList.append($("<option></option>").val(this['id']).html(this['name']));
});

【讨论】:

    【解决方案2】:
    var aa={"patients":[{"name":"sam","id":"1"},{"name":"mark","id":"2"}],"medications":[{"id":"1","medication":"atenolol"},{"id":"2","medication":"amoxicillin"}]}
    console.log(aa["patients"]);
    console.log(aa["medications"]);
    

    这只是一个例子

    您可以看到,当您有两个级别的 json 对象时,您必须将其与名称一起使用

    你的对象会像数据表一样

    请在此处查看演示Demo

    【讨论】:

    • 您的演示链接无效。即使它通过硬编码来工作。我不确定如何在我的代码中实现它。这就是我尝试过的jsfiddle.net/8kkg3/306 它在 jsfiddle 中有效,但是当我尝试用 var json=data['patients']; 替换 var json=jsonds['patients']; 时它在我的代码中无效
    • 请检查控制台人那里你会得到对象好的确实你终于得到了答案
    • 这不适用于console.log(data["patients"]); console.log(data["medication"]);
    • console.log(data["patients"]);给我 undifined while console.log(aa["patients"]);在控制台中给我对象
    • 是的,我只是给你举个例子,你必须像aa["patients"]那样实现它
    猜你喜欢
    • 1970-01-01
    • 2013-07-27
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多