web-dev-qa-db-fra.com

Sérialisation / désérialisation JSON dans ASP.Net Core

Puisqu'il n'y a pas de JavaScriptSerializer, quelle implémentation native peut être utilisée pour gérer cela?

J'ai remarqué JsonResult et je peux formater des données au format JSON avec cela, mais comment puis-je désérialiser?

Ou peut-être me manque-t-il des dépendances dans project.json?

104
Jakub Wisniewski

Vous pouvez utiliser Newtonsoft.Json, c'est une dépendance de Microsoft.AspNet.Mvc.ModelBinding qui est une dépendance de Microsoft.AspNet.Mvc. Vous n'avez donc pas besoin d'ajouter de dépendance dans votre fichier project.json.

#using Newtonsoft.Json
....
JsonConvert.DeserializeObject(json);

Notez que si vous utilisez un contrôleur WebAPI, vous n'avez pas besoin de traiter avec JSON.

MISE À JOUR ASP.Net Core 3.0 Preview

Json.NET a été supprimé du framework partagé ASP.NET Core 3.0.

Vous pouvez utiliser les nouvelles couches de sérialiseur JSON en plus des hautes performances Utf8JsonReader et Utf8JsonWriter. Il désérialise les objets à partir de JSON et sérialise les objets en JSON. Les allocations de mémoire sont réduites au minimum et prennent en charge la lecture et l'écriture de JSON avec Stream de manière asynchrone.

Pour commencer, utilisez la classe JsonSerializer dans l'espace de noms System.Text.Json.Serialization. Voir le documentation pour plus d'informations et des exemples. L'ensemble de fonctionnalités est en cours d'extension pour les prévisualisations futures.

Pour utiliser Json.NET dans un projet d'aperçu ASP.NET Core 3.0:

    services.AddMvc()
        .AddNewtonsoftJson();

Lire support Json.NET dans Migrer depuis ASP.NET Core 2.2 vers 3.0 Preview 2 pour plus d'informations

197
agua from mars