我正在使用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 DataTable已退回:
[{"name":"sam","id":"1"},{"name":"mark","id":"2"}]
Json DataSet已退回:
{"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'];
答案 0 :(得分:1)
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
答案 1 :(得分: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']));
});