Como importar JsonConvert no aplicativo C #?

94

Criei um projeto de biblioteca C #. O projeto tem esta linha em uma classe:

JsonConvert.SerializeObject(objectList);

Estou recebendo um erro dizendo

o nome JsonConvert não existe no contexto atual.

Para corrigir isso, adicionei System.ServiceModel.Web.dllreferências, mas não tive sorte. Como posso resolver esse erro?

Jainendra
fonte

Respostas:

170

JsonConverté do namespace Newtonsoft.Json, nãoSystem.ServiceModel.Web

Use NuGetpara baixar opackage

"Projeto" -> "Gerenciar pacotes NuGet" -> "Procure por" newtonsoft json ". -> clique em" instalar ".

Sam Leach
fonte
se você está construindo um .NET Core WebApi ou WebSite, veja minha resposta abaixo
Mauricio Gracia Gutierrez
1
também, certifique-se de 'using Newtonsoft.Json;' está aí
Dhanuka777
43

clique com o botão direito no projeto e selecione Manage NuGet Packages.. Nele selecione Json.NETe instale

Depois da instalação,

use o seguinte namespace

using Newtonsoft.Json;

então use o seguinte para desserializar

JsonConvert.DeserializeObject
Krishna Deepak
fonte
Para .net core você não precisa instalar o newtonsoft - veja minha resposta abaixo
Mauricio Gracia Gutierrez
16

Instale-o usando NuGet:

Install-Package Newtonsoft.Json


Postando isso como uma resposta.

Zanon
fonte
Para .net core você não precisa instalar o newtonsoft - veja minha resposta abaixo
Mauricio Gracia Gutierrez
7

Ou se você estiver usando dotnet Core,

adicione ao seu arquivo .csproj

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

E

dotnet restore
Andrew Lorien
fonte
Para .net core você não precisa instalar o newtonsoft - veja minha resposta abaixo
Mauricio Gracia Gutierrez
6

Linux

Se você estiver usando Linux e .NET Core, veja esta pergunta , você vai querer usar

dotnet add package Newtonsoft.Json

E então adicione

using Newtonsoft.Json;

para todas as classes que precisam disso.

Evan Carroll
fonte
Para .net core você não precisa instalar o newtonsoft - veja minha resposta abaixo
Mauricio Gracia Gutierrez
3

Ferramentas -> Gerenciador de Pacotes NuGet -> Console do Gerenciador de Pacotes

PM> Install-Package Newtonsoft.Json
Aminur Rahman
fonte
Para .net core você não precisa instalar o newtonsoft - veja minha resposta abaixo
Mauricio Gracia Gutierrez
2

Se você estiver desenvolvendo um .Net Core WebApi ou WebSite, não precisa instalar o newtownsoft.json para realizar a serialização / desserealização json

Apenas certifique-se de que seu método de controle retorna um JsonResulte chama return Json(<objectoToSerialize>);como este exemplo

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);
        }
    }
}

Se você estiver desenvolvendo um .Net Framework WebApi ou WebSite, precisará usar o NuGet para baixar e instalar onewtonsoft json pacote

"Projeto" -> "Gerenciar pacotes NuGet" -> "Procure por" newtonsoft json ". -> clique em" instalar ".

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);
        }
    }
}

Mais detalhes podem ser encontrados aqui - https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/formatting?view=aspnetcore-2.1

Mauricio Gracia Gutierrez
fonte
0

Após instalar o pacote, você precisa adicionar newtonsoft.json.dll no caminho de montagem, executando o comando de fluxo.

Antes de podermos usar nosso assembly, temos que adicioná-lo ao cache global de assemblies (GAC). Abra o Prompt de Comando do Visual Studio 2008 novamente (para Vista / Windows7 / etc. Abra-o como Administrador). E execute o seguinte comando. gacutil /id:\myMethodsForSSIS\myMethodsForSSIS\bin\Release\myMethodsForSSIS.dll

flua este link para obter mais informações http://microsoft-ssis.blogspot.com/2011/05/referencing-custom-assembly-inside.html

Shiv Roy
fonte
0

Experimente isso em C #. Funciona:

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

Importe os namespaces abaixo:

Para JsonConvert: using Newtonsoft.Json;

Para Arquivo: using System.IO;

Satish Babu
fonte