Mein Problem ist, dass ich camelCased (im Gegensatz zu den Standard-PascalCase) JSON-Daten über ActionResult s von ASP.NET MVC-Controller-Methoden zurückgeben möchte , die von JSON.NET serialisiert wurden .
Betrachten Sie als Beispiel die folgende C # -Klasse:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
Wenn eine Instanz dieser Klasse von einem MVC-Controller als JSON zurückgegeben wird, wird sie standardmäßig wie folgt serialisiert:
{
"FirstName": "Joe",
"LastName": "Public"
}
Ich möchte, dass es (von JSON.NET) wie folgt serialisiert wird:
{
"firstName": "Joe",
"lastName": "Public"
}
Wie mache ich das?
asp.net-mvc
json
json.net
camelcasing
aknuds1
quelle
quelle
Controller
Methode zurückgeben, sollten Sie wahrscheinlich eine verwendenApiController
. In diesem Fall funktioniert diese Antwort hervorragend.application/json
nichttext/plain
.Ich habe auf Mats Karlssons Blog eine hervorragende Lösung für dieses Problem gefunden . Die Lösung besteht darin, eine Unterklasse von ActionResult zu schreiben, die Daten über JSON.NET serialisiert und letztere so konfiguriert, dass sie der camelCase-Konvention folgen:
Verwenden Sie diese Klasse dann wie folgt in Ihrer MVC-Controller-Methode:
quelle
Für WebAPI , überprüfen Sie diesen Link aus: http://odetocode.com/blogs/scott/archive/2013/03/25/asp-net-webapi-tip-3-camelcasing-json.aspx
Fügen Sie diesen Code grundsätzlich zu Ihrem
Application_Start
:quelle
Ich denke, das ist die einfache Antwort, die Sie suchen. Es ist aus Shawn Wildermuths Blog:
quelle
Eine Alternative zum benutzerdefinierten Filter besteht darin, eine Erweiterungsmethode zum Serialisieren eines beliebigen Objekts in JSON zu erstellen.
Rufen Sie es dann auf, wenn Sie von der Controller-Aktion zurückkehren.
quelle
Einfacher ist besser IMO!
Warum machst du das nicht?
Der einfache Basisklassen-Controller
quelle
In ASP.NET Core MVC.
quelle
Im Folgenden finden Sie eine Aktionsmethode, die einen JSON-String (CameCase) zurückgibt, indem ein Array von Objekten serialisiert wird.
Beachten Sie die als zweiten Parameter übergebene JsonSerializerSettings-Instanz. Das macht den camelCase möglich.
quelle
Mir hat das gefallen:
Dies ist eine einfache Erweiterungsmethode im MVC-Kern. Sie gibt jedem Objekt in Ihrem Projekt die ToJson () -Fähigkeit. Meiner Meinung nach sollte in einem MVC-Projekt der größte Teil des Objekts die Fähigkeit haben, json zu werden, natürlich hängt es davon ab :)
quelle
Sie müssen die Einstellungen in der Datei 'Startup.cs' vornehmen.
Sie müssen es auch in den Standardwerten von JsonConvert definieren. Dies ist der Fall, wenn Sie später die Bibliothek direkt zum Serialisieren eines Objekts verwenden möchten.
quelle
Wenn Sie ActionResult in der .net Core-Web-API oder im IHttpAction-Ergebnis zurückgeben, können Sie Ihr Modell einfach in eine Ok () -Methode einbinden, die dem Fall auf Ihrem Front-End entspricht, und es für Sie serialisieren. JsonConvert muss nicht verwendet werden. :) :)
quelle