![](/img/trans.png)
[英]How to consume Json data from asp.net webservice with javascript
[英]Parsing Json data from asp.net webservice and populating it in asp.net dropdownlist
我試圖填充從我的Web服務以JSON返回的asp.net dropdownlist。
網絡服務
[WebMethod(EnableSession = true)]
public string GetActiveDepositAccountsForLoanAlert(string customerId)
{
var data = BusinessLayer.SMS.SmsSetup.GetActiveDepositAccountsForLoanAlert(customerId.ToLong());
var json = new JavaScriptSerializer().Serialize(data);
return json;
}
Web服務返回
[{ “賬戶號碼”: “NS-0000092”},{ “賬戶號碼”: “6MR-0000002”},{ “賬戶號碼”: “1YFD-0000007”}]
我正在從ajax調用中調用數據,並將其填充到我的下拉列表中。
阿賈克斯電話
function GetActiveDepositAccounts(customerrId) { var customerId = $('#CustomerIdHiddenField').val(); var data = { customerId: $('#CustomerIdHiddenField').val() }; var json_data = JSON.stringify(data); $.ajax({ type: "POST", url: "/WebMethods/Misc.asmx/GetActiveDepositAccountsForLoanAlert", data: json_data, contentType: "application/json; charset=utf-8", dataType: "json", success: OnSuccess, failure: function (response) { alert(response.d); } }); } function OnSuccess(r) { var depositRadioList = $("[id*=DepositAccountDropDownList]"); depositRadioList.empty().append('<option selected="selected" value="0">Please select</option>'); for (var i = 0; i < rdlength; i++) { depositRadioList.append('<option>' + rd[i] + '</option>'); } }
數據在json中填充。在我的下拉列表中,我只希望帳號為NS-0000092。我在下拉列表中獲取整個json。我在這里搜索並看到很多與此Json解析問題有關的問題。我不是新手,所以在將其標記為重復之前,請先看一下代碼。謝謝。
我不能感到震驚,因為您的GetActiveDepositAccountsForLoanAlert
返回的是字符串而不是對象,因此rd被視為字符串。 嘗試2件事之一。 或者:
var data = JSON.parse(rd)
並在for循環中使用該變量。 如果使用“ 整個json ”,則表示每個選項獲得一個{"AccountNumber":"6MR-0000002"}
,請嘗試輸出目標AccountNumber對象的值(例如rd[i].AccountNumber
或rd[i]["AccountNumber"]
)。
var depositRadioList = $("[id*=DepositAccountDropDownList]");
depositRadioList.empty().append('<option selected="selected" value="0">Please select</option>');
for (var i = 0; i < r.d.length; i++) {
depositRadioList.append('<option>' + r.d[i].AccountNumber + '</option>');
}
如果每個選項的結果是一個完整的AccountNumber對象數組,則需要遍歷r
對象,直到到達Account Number對象列表為止。
看看我的Example JS Fiddle 。 可能有一種更簡潔的方法來執行此操作,但是為了展示這一原理,我已經設計了嵌套循環,以使您進入<select></select>
所需的對象值列表。
我正在使用JQuery $ .each()方法,但是可以使用for
循環。 我建議僅使用一個或另一個來保持一致性。 如果數據集確實很大, for
循環將具有更好的性能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.