Die übergabe der Dynamischen JSON-Objekt zum Web-API - Newtonsoft Beispiel
Muss ich weiterleiten einer dynamischen JSON-Objekt, um meine Web-API-controller, so dass ich verarbeiten kann, je nachdem welche Art es ist. Ich habe versucht mit den JSON.NET Beispiel , die hier gesehen werden können, aber wenn ich mit Fiddler kann ich sehen, dass die übergebene JObect ist immer null.
Dies ist ein üben aus dem Beispiel eingefügt, Fiddler:
POST http://localhost:9185/api/Auto/PostSavePage/ HTTP/1.1
User-Agent: Fiddler
Content-type: application/json
Host: localhost
Content-Length: 88
{AlbumName: "Dirty Deeds",Songs:[ { SongName: "Problem Child"},{ SongName:
"Squealer"}]}
Ans hier ist meine sehr einfache Web-API-controller Methode:
[HttpPost]
public JObject PostSavePage(JObject jObject)
{
dynamic testObject = jObject;
//other stuff here
}
Ich bin neu hier und ich habe ein paar Fragen, die in dieser Gegend:
Mache ich etwas falsch in diesem speziellen Beispiel?
Wohl viel wichtiger ist, gibt es einen besseren Weg, um pass in einem dynamischen JSON-Objekt (aus einer JavaScript AJAX-post)?
Ich war nicht in der Lage, repro, Ihr Problem in einem neu erstellten MVC4 Web.API-Projekt. Ich sende eine Anfrage mit fiddler mit den exakt gleichen Werten und die
jObject
parameter korrekt mit Daten gefüllt. Vielleicht ist etwas falsch mit Ihrem routing, haben Sie irgendwelche Routen?Dank nemesv. Ich habe auch versucht ein neues Projekt und du hast Recht, die jObject ist in Ordnung. Ich habe custom-Strecken, so wird ein Blick dort.
InformationsquelleAutor davy | 2012-12-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als pro Wahrnehmung Kommentar, Ihre JSON sieht nicht gültig. Führen Sie es durch JSONLint und Sie erhalten:
Ändern Sie es zu haben, " um den Feldnamen:
Haben auch Sie versucht, den Austausch Ihrer JObject für einen JToken oder ein Dynamisches Objekt (z.B. hier)?
ODER
tut mir Leid, das zu hören. Wenn Sie sind in der Lage, um zu sehen, dass testObject null ist dann Ihre Routen werden sollte, OK... kann man einen Haltepunkt in PostDavePage? Ich werde versuchen, nehmen Sie einen anderen stab zu beantworten, wenn Sie Ihre route config zu teilen.
Vielen Dank. Etwas seltsames passiert. Ich bin in th eprocess kopieren von Dateien in my basic funktionierende Lösung. Hoffentlich dann funktioniert es, oder ich werde in der Lage sein, zu lokalisieren des Problems. Ich denke, das Projekt kann beschädigt werden, in irgendeiner Weise, da bin ich immer einige andere komische Fehler, dass ich nicht gehen in noch nicht, wie ich nicht bekommen, Sie in der neuen app. Ich werde aktualisieren, wenn ich nichts finde. Nochmals vielen Dank.
mit "dynamic" für mich gearbeitet. Danke!!!
InformationsquelleAutor Mark Jones
Dank an alle, die hier geholfen. Leider kam ich nie auf den Grund, was falsch war.
Ich portiert das Projekt über Stück für Stück zu einem neuen Projekt und es funktioniert gut.
Zur info, ich habe eine RouteConfig Klasse, das ist ganz einfach im moment:
Mein Aufruf in die API nutzt jetzt JSON.Stringify:
Den ursprünglichen API-Aktion funktioniert.
Hinweis, dass ich nur das spielen mit dieser im moment der code ist nicht der beste, aber ich dachte, es kann nützlich sein, in basic-form, falls jemand anderes ein ähnliches Problem.
InformationsquelleAutor davy