这是我的JSON返回响应,现在使用Fiddler或POSTMAN来测试JSON。
{
"d": {
"result": null,
"errorcode": "test",
"errormessage": "Invalid signature.",
"resend": null
}
}
这就是我想要的“d”到“身体”:
{
"body": {
"result": null,
"errorcode": "test",
"errormessage": "Invalid signature.",
"resend": null
}
}
这是我使用此网址获取响应的asmx代码 - http://localhost:59583/JSONTest.asmx/Test
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public Response Test(RequestHeader header)
{
Response response = new Response();
response.result = "N";
response.errorcode = "test";
response.errormessage = "test";
response.resend = "N";
return response;
}
我的回复课程:
public class Response
{
public string result { get; set; }
public string errorcode { get; set; }
public string errormessage { get; set; }
public string resend { get; set; }
}
注意:我的asmx在此解决方案中没有使用jquery ajax或aspx页面来返回JSON响应。因为我使用的是.NET 4.5而不是2.0,我也理解这个“d”是一个安全的对象。那么任何其他方式只能将对象“d”直接指向“正文”吗?
更新:现在我用aspx页面添加我的解决方案。这是我的代码。这是对的吗?以及ajax如何连接到我的asmx Test()函数?
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="Scripts/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function example() {
//var result = "";
$.ajax({
type: "POST",
url: "JSONTest.asmx/Test",
data: "{ }",
contentType: false,
success: function (result) {
var body = JSON.parse(result.d);
// you can access your object here
console.log(body.result);
},
dataType: "json"//set to JSON
})
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
更新:使用WCF C#服务修复它。使用它比使用asmx更方便。
答案 0 :(得分:0)
$.ajax({
url: 'your-url-here',
type: "post",
contentType: false,
success: function (result) {
var body = JSON.parse(result.d);
// you can access your object here
console.log(body.result);
}
});