Dies ist meine JSON-Antwort Antwort jetzt mit Fiddler oder POSTMAN JSON zu testen.ASMX JSON NET 4.5 Antwort Antwort eingewickelt mit "d", Wie ändert man die "d" zu "Körper"?
{
"d": {
"result": null,
"errorcode": "test",
"errormessage": "Invalid signature.",
"resend": null
}
}
Dies ist, was ich mit "d" auf "Körper" will:
{
"body": {
"result": null,
"errorcode": "test",
"errormessage": "Invalid signature.",
"resend": null
}
}
Das ist mein asmx Code, um die Reaktion mit dieser URL zu bekommen - 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;
}
Mein Antwortklasse:
public class Response
{
public string result { get; set; }
public string errorcode { get; set; }
public string errormessage { get; set; }
public string resend { get; set; }
}
Achtung: Mein asmx hat in dieser Lösung keine jquery ajax- oder aspx-Seite verwendet, um die JSON-Antwort zurückzugeben. Weil ich .NET 4.5 nicht 2.0 benutze und ich verstehe auch, dass "d" ein sicheres Objekt ist. Also können andere Wege das Objekt "d" nur auf "Körper" richten?
AKTUALISIERT: Jetzt füge ich meine Lösung mit einer aspx Seite hinzu. Das ist mein Code. Ist es richtig? Und wie verbindet sich der Ajax mit meiner asmx Test() Funktion?
<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>
AKTUALISIERT: Es wurde mit WCF C# Service behoben. Mehr Komfort, um dies als asmx zu verwenden.
zeigen die 'Antwort' Klasse. –
http://StackOverflow.com/Questions/830112/What-does-d-in-Json-Mean – AakashM