gpt4 book ai didi

c# - 读取从ASMX返回的JSON数据

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:33 24 4
gpt4 key购买 nike

我编写了一个看起来像这样的ASMX服务;

namespace AtomicService
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[ScriptService]
public class Validation : WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string IsEmailValid(string email)
{
Dictionary<string, string> response = new Dictionary<string, string>();
response.Add("Response", AtomicCore.Validation.CheckEmail(email).ToString());
return JsonConvert.SerializeObject(response, Formatting.Indented);
}
}
}


我正在使用Newtonsoft.Json库提供JsonConvert.SerializeObject功能。当在Fiddler中调用或通过我的Jquery访问时,我得到以下响应:


此警报的代码为:

$(document).ready(function () {
$.ajax({
type: "POST",
url: "http://127.0.0.1/AtomicService/Validation.asmx/IsEmailValid",
data: "{'email':'dooburt@gmail.com'}",
contentType: "application/json",
dataType: "json",
success: function (msg) {
if (msg["d"].length > 0) {
alert("fish");
}
alert("success: " + msg.d);
},
error: function (msg) {
alert("error");
}
});
});


而且虽然我可以从 msg.d看到数据,但无法访问它。我想知道 Response是什么。我该怎么办?

我并不完全相信我的ASMX为所有工作都返回了正确的JSON类型。

有人可以帮忙吗? :)

最佳答案

反序列化的JSON对象似乎具有另一个JSON作为其值之一。尝试添加:

var data = $.parseJSON(msg.d);
alert(data.Response);


到您的成功回调,看看是否是这种情况。

更新:如果是这种情况,那么您已经对数据进行了JSON编码两次-请参见 the answer by C. Ross以获取适当的解决方案。

关于c# - 读取从ASMX返回的JSON数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5248138/

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