Comment importer JsonConvert dans L'application C#?
j'ai créé un projet de bibliothèque C#. Le projet a cette ligne dans une classe:
JsonConvert.SerializeObject(objectList);
j'obtiens une erreur en disant
le nom JsonConvert n'existe pas dans le contexte actuel.
pour corriger cela, j'ai ajouté System.ServiceModel.Web.dll
aux références mais n'ai pas eu de chance. Comment puis-je résoudre cette erreur?
7 réponses
JsonConvert
provient de l'espace de nom Newtonsoft.Json
, pas System.ServiceModel.Web
utiliser NuGet
pour télécharger le package
"projet" - > "Gérer les paquets NuGet" - > "rechercher" newtonsoft json". -> cliquez sur "installer".
faites un clic droit sur le projet et sélectionnez Manage NuGet Packages..
Dans cette sélectionnez Json.NET
et installer
après installation,
utilisez l'espace de noms suivant
using Newtonsoft.Json;
puis utiliser ce qui suit pour desérialiser
JsonConvert.DeserializeObject
Outils -> Gestionnaire De Package NuGet -> Gestionnaire De Paquets De La Console
PM> Install-Package Newtonsoft.Json
ou si vous utilisez dotnet Core,
ajouter à votre .fichier csproj
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
</ItemGroup>
et
dotnet restore
Linux
si vous utilisez Linux et .net Core, voir la question ,vous voudrez utiliser
dotnet add package Newtonsoft.Json
et ajouter
using Newtonsoft.Json;
à toutes les classes qui en ont besoin.
si vous êtes développer un .net WebAPI Core ou un site Web, vous n'avez pas besoin d'installer newtownsoft.json pour effectuer la sérialisation json/deserealization
assurez-vous simplement que votre méthode de controller retourne un JsonResult
et appelez return Json(<objectoToSerialize>);
comme dans cet exemple
namespace WebApi.Controllers
{
[Produces("application/json")]
[Route("api/Accounts")]
public class AccountsController : Controller
{
// GET: api/Transaction
[HttpGet]
public JsonResult Get()
{
List<Account> lstAccounts;
lstAccounts = AccountsFacade.GetAll();
return Json(lstAccounts);
}
}
}
si vous développez un ." colis
"projet" - > "Gérer les paquets NuGet" - > "rechercher" newtonsoft json". -> cliquez sur "installer".
namespace WebApi.Controllers
{
[Produces("application/json")]
[Route("api/Accounts")]
public class AccountsController : Controller
{
// GET: api/Transaction
[HttpGet]
public JsonResult Get()
{
List<Account> lstAccounts;
lstAccounts = AccountsFacade.GetAll();
//This line is different !!
return new JsonConvert.SerializeObject(lstAccounts);
}
}
}
plus de détails peuvent être trouvés ici - https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/formatting?view=aspnetcore-2.1