Ich habe viele verschiedene Varianten gesucht und gelesen und ausprobiert, um sicherzustellen, dass das lästige {"d": null} nicht an das Ende angehängt wird meine JSON Antwort, aber ich bin ratlos. Ich habe ein .asmx Web-Dienst, der die Context.Response.Write Methode macht nutzt etwa so:{"d": null} zeigt nach JSON Antwort von ASMX Web Service
DataTable products = my_source;
string jsonResponse = JsonConvert.SerializeObject(products);//, Formatting.None, new JsonSerializerSettings { ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore});
this.Context.Response.Clear();
this.Context.Response.ContentType = "application/json; charset=utf-8";
this.Context.Response.Write(jsonResponse);
HttpContext.Current.ApplicationInstance.CompleteRequest();
Ich habe versucht, auch Flush() zu verwenden, nach dem Schreib ohne Erfolg. Das würde nur den JSON zurückgeben, aber auch eine Fehlermeldung, die nach dem Senden der Header nicht gelöscht werden kann. Ich habe Write.End() anstelle von CompleteRequest verwendet, und das würde auch die] von der JSON-Antwort abgeschnitten. Anstatt Context.Response.Write zu verwenden, würde ich eine Zeichenfolge zurückgeben, die jedoch auch die] Klammer am Ende der JSON-Antwort verlässt.
Meine Methode Attribute sind wie folgt:
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
ich den Dienst mit einer einfach Ajax-Request aufrufen:
$.ajax({
url : '/ProductCatalog/ProductMasterWS.asmx/GetProducts',
type : 'GET',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (data) {
populate(data);
},
error: function(xhr, ajaxOptions, thrownError) {
console.log(xhr.status + " " + thrownError.stack);
}
});
Irgendwelche Ideen/Beratung ist sehr zu schätzen!
Wenn ich eine Zeichenfolge zurück, automatisch ASP.NET fügt diese um meine Antwort. Ich brauche eine einfache JSON-Antwort. Wie kann ich das erreichen? –
Jay
Was ist mit der Rückgabe eines POCO-Objekts? Es sollte automatisch serialisiert werden, wenn Sie die Antwort auf JSON festlegen. –
Ich habe versucht, eine Liste zurückzugeben, jedoch wird sie nicht in ein JSON-Objekt serialisiert und macht die Rückgabe noch komplizierter. ... ArrayOfPocoModel> –
Jay