【发布时间】:2018-01-13 23:41:24
【问题描述】:
我是 jQuery 新手,并试图根据下拉列表的选择从 SQL 数据库中获取数据。我已经管理了 AJAX 调用,它看起来好像数据返回是有效的 JSON 格式。但是,我不知道如何从 JSON 字符串中获取键值对之一。我已经尝试了通过搜索互联网找到的所有内容:
$("#cmbFacilityName").change(function () {
$("#hdnMinimumDaysInAdvance").val = ""
//alert('Selected value: ' + $(this).val());
if ($(this).val() != '') {
var organizationKey = $('#hdnOrganizationKey').val();
var facilitySpaceKey = $("#cmbFacilityName").val();
//alert(facilitySpaceKey)
GetMinimumDaysInAdvance(organizationKey, facilitySpaceKey)
}
});
函数 GetMinimumDaysInAdvance(organizationKey, facilitySpaceKey) { $.ajax({ 类型:“获取”, url: "/Facility/View/FacilityReservation.aspx/GetMinimumDaysInAdvance", 数据:{intOrganizationKey:organizationKey,intFacilitySpaceKey:facilitySpaceKey}, contentType: "应用程序/json; charset=utf-8", 数据类型:“json”, 成功:函数(响应){
var obj = response.d;
//object = JSON.parse(response);
//var x = JSON.stringify(response);
// console.log(x.property_actually_now_defined);
//var obj = response
//var minHours = obj["MinNbrOfHours"];
// var json = $.parseJSON(response);
//$("#hdnMinimumDaysInAdvance").html(data.MinNbrOfHours);
// obj = JSON.parse(response);
//var parsedJSON = $.parseJSON(response);
alert('Field: ' + obj.MinNbrOfHours);
// $("#hdnMinimumDaysInAdvance").val(response.d.MinNbrOfHours);
//var minNbrOfHours = JSONobj.entity.entries.MinNbrOfHours;
//alert('Returned value: ' + minNbrOfHours);
//$("#hdnMinimumDaysInAdvance").text(msg.d)
},
error: function (msg) {
alert("error:" + JSON.stringify(msg));
}
});
}
我的代码隐藏中的方法:
<System.Web.Services.WebMethod()>
<ScriptMethod(UseHttpGet:=True, ResponseFormat:=ResponseFormat.Json)>
Public Shared Function GetMinimumDaysInAdvance(ByVal intOrganizationKey As Int32, ByVal intFacilitySpaceKey As Integer) As Object
Dim FacilityRatesBE As New FacilityRatesBE
Dim FacilityRatesDAL As New FacilityDAL
FacilityRatesBE = FacilityRatesDAL.GetFacilityRatesByFacilityKey(intOrganizationKey, intFacilitySpaceKey)
Return JsonConvert.SerializeObject(FacilityRatesBE.MinNbrOfHours)
End Function
感谢任何可以帮助我的人。我已经尝试了所有我能想到的选项。显然,我遗漏或不理解某些内容。
【问题讨论】:
-
请多解释一下。另外,你试过 JSON.parse() 吗?
-
是的。当我这样做时,我得到一个错误。我的研究表明错误是因为它已经被解析,因为数据类型:json 在 AJAX 调用中指定。
-
其实这个语句:Return JsonConvert.SerializeObject(FacilityRatesBE.MinNbrOfHours)应该是:Return JsonConvert.SerializeObject(FacilityRatesBE)。我偶然发布的那个是另一种尝试。我实际上是在返回整个班级。
-
所以让我重新表述这个问题,你得到一个有效的 JSON 并试图访问一些密钥,但不知何故,该密钥不存在于数据中。这是你要问的吗?
-
这里是响应中返回的内容的 sn-p:{d: "{"FacilityRatesKey":282,"OrganizationKey":0,"Facil...t":"","NoAlcoholAgreement": "","LastUpdatedBy":""}"}