gpt4 book ai didi

asp.net - jQuery 并在回调中解析 JSON

转载 作者:行者123 更新时间:2023-12-01 01:05:19 26 4
gpt4 key购买 nike

我正在使用 jQuery 调用 asmx 并返回一些数据。我这样打电话

function getRequestInfo(event) {
var id = $('#<%= RequestDaysId.ClientID %>').val();
var formattedId = "{'id': '115'}";
$.ajax({
type: "Post",
url: "services/VacationServices.asmx/GetVacationInfo",
data: "{'id': '" + id + "'}",
dataType: "json",
contentType: "application/json; charset=utf-8",
processdata: true,
success: function(data) {
$('#<%=Note.ClientID %>').val(data.Note);
$('.pendingrequestinfo').show().fadeIn(2000);
},
error: function(result, errortype, exceptionobject) {
$('.failureMessage').fadeIn(2000).fadeOut(2000);
}
})
};

一切似乎都工作正常,我在成功函数中设置了一个断点并检查数据对象并看到了这一点。

"{"Note":"this is a note","dayInfo":[{"ShortDate":"3/4/2010","DayType":"Vacation","HalfDay":""},{"ShortDate":"3/5/2010","DayType":"Vacation","HalfDay":""}]}"

当我尝试从 JSON 中获取值时,问题就出现了。如果我执行类似 data.Note 的操作,我会得到未定义的结果。

很晚了,现在是星期六,我已经忙了一整天了,在解析我的 JSON 时,我确实希望能朝着正确的方向前进。

编辑:我使用 Asp.net 和 JavaScriptSerializer.Serialize() 创建 JSON。当我设置断点并检查“数据”对象时,它看起来有一个属性 d,其中包含应为 JSON 的字符串。

另一个编辑:如果我成功地做了这样的事情

$('#<%=Note.ClientID %>').val(data.d.[0]);

我得到了 { 左大括号。我想我得到的是一个字符串而不是 JSON,但是当数据类型设置为 JSON 时,它似乎违背了 jquery api 关于返回值的规定。

谢谢大家。吉姆

最佳答案

首先确保成功回调返回的响应中的“d”变量中存在 JSON 字符串。接下来,为了获取 JSON 对象,您需要将字符串转换为 JSON。您可以使用 eval 函数或 JQuery 内置函数将字符串转换为 JSON。我喜欢jquery-json插入将字符串转换为 JSON 表示形式。

您的代码将如下所示:

var jsonObject = eval('(' + data.d + ')'); 

现在,您可以使用 jsonObject.Note 或任何其他属性。

使用 jquery-json 插件,您可以执行以下操作:

var note = $.evalJSON(data.d).Note;

关于asp.net - jQuery 并在回调中解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2304118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com