Comment importer JsonConvert dans une application C #?

94

J'ai créé un projet de bibliothèque C #. Le projet a cette ligne dans une classe:

JsonConvert.SerializeObject(objectList);

Je reçois une erreur en disant

le nom JsonConvert n'existe pas dans le contexte actuel.

Pour résoudre ce problème, j'ai ajouté System.ServiceModel.Web.dlldes références mais je n'ai pas eu de chance. Comment puis-je résoudre cette erreur?

Jainendra
la source

Réponses:

170

JsonConvertprovient de l'espace de noms Newtonsoft.Json, pasSystem.ServiceModel.Web

Utilisez NuGetpour télécharger lepackage

"Projet" -> "Gérer les packages NuGet" -> "Rechercher" newtonsoft json ". -> cliquer sur" installer ".

Sam Leach
la source
est-ce que vous construisez un WebApi ou un site Web .NET Core voir ma réponse ci
Mauricio Gracia Gutierrez
1
aussi, assurez-vous 'using Newtonsoft.Json;' est là
Dhanuka777
43

faites un clic droit sur le projet et sélectionnez Manage NuGet Packages.. Dans ce choix Json.NETet installez

Après l'installation,

utiliser l'espace de noms suivant

using Newtonsoft.Json;

puis utilisez ce qui suit pour désérialiser

JsonConvert.DeserializeObject
Krishna Deepak
la source
Pour .net core, vous n'avez pas besoin d'installer newtonsoft - voir ma réponse ci
Mauricio Gracia Gutierrez
16

Installez-le à l'aide de NuGet:

Install-Package Newtonsoft.Json


Poster ceci comme réponse.

Zanon
la source
Pour .net core, vous n'avez pas besoin d'installer newtonsoft - voir ma réponse ci
Mauricio Gracia Gutierrez
7

Ou si vous utilisez dotnet Core,

ajouter à votre fichier .csproj

  <ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
  </ItemGroup>

Et

dotnet restore
andrew lorien
la source
Pour .net core, vous n'avez pas besoin d'installer newtonsoft - voir ma réponse ci
Mauricio Gracia Gutierrez
3

Outils -> Gestionnaire de package NuGet -> Console du gestionnaire de package

PM> Install-Package Newtonsoft.Json
Aminur Rahman
la source
Pour .net core, vous n'avez pas besoin d'installer newtonsoft - voir ma réponse ci
Mauricio Gracia Gutierrez
2

Si vous êtes développez un WebApi ou un site Web .Net Core, vous n'avez pas besoin d'installer newtownsoft.json pour effectuer la sérialisation / déserealization json

Assurez-vous simplement que votre méthode de contrôleur renvoie un JsonResultet appelez return Json(<objectoToSerialize>);comme 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 WebApi ou un site Web .Net Framework, vous devez utiliser NuGet pour télécharger et installer le newtonsoft jsonpackage.

"Projet" -> "Gérer les packages NuGet" -> "Rechercher" newtonsoft json ". -> cliquer 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

Mauricio Gracia Gutierrez
la source
0

Après avoir installé le package, vous devez ajouter le fichier newtonsoft.json.dll dans le chemin d'assemblage en exécutant la commande qui suit.

Avant de pouvoir utiliser notre assembly, nous devons l'ajouter au Global Assembly Cache (GAC). Ouvrez à nouveau l'invite de commandes de Visual Studio 2008 (pour Vista / Windows7 / etc., ouvrez-la en tant qu'administrateur). Et exécutez la commande suivante. gacutil /id:\myMethodsForSSIS\myMethodsForSSIS\bin\Release\myMethodsForSSIS.dll

suivez ce lien pour plus d'informations http://microsoft-ssis.blogspot.com/2011/05/referencing-custom-assembly-inside.html

shiv roy
la source
0

Essayez ceci en C #. Ça marche:

var jsonObject = JsonConvert.DeserializeObject(File.ReadAllText(MyFilePath));

Importez sous les espaces de noms:

Pour JsonConvert: using Newtonsoft.Json;

Pour le fichier: using System.IO;

Satish Babu
la source