¿Cómo importar JsonConvert en la aplicación C #?

98

Creé un proyecto de biblioteca C #. El proyecto tiene esta línea en una clase:

JsonConvert.SerializeObject(objectList);

Estoy recibiendo un error diciendo

el nombre JsonConvert no existe en el contexto actual.

Para solucionarlo, agregué System.ServiceModel.Web.dllreferencias pero no tuve suerte. ¿Cómo puedo solucionar este error?

Jainendra
fuente

Respuestas:

176

JsonConvertes del espacio de nombres Newtonsoft.Json, noSystem.ServiceModel.Web

Use NuGetpara descargar elpackage

"Proyecto" -> "Administrar paquetes NuGet" -> "Buscar" newtonsoft json ". -> haga clic en" instalar ".

Sam Leach
fuente
si está construyendo un .NET Core WebApi o WebSite vea mi respuesta a continuación
Mauricio Gracia Gutierrez
1
también, asegúrese de 'usar Newtonsoft.Json;' ¿Hay
Dhanuka777
46

haga clic derecho en el proyecto y seleccione Manage NuGet Packages.. En ese seleccione Json.NETe instale

Después de la instalación,

use el siguiente espacio de nombres

using Newtonsoft.Json;

luego usa lo siguiente para deserializar

JsonConvert.DeserializeObject
Krishna Deepak
fuente
Para .net core no es necesario instalar newtonsoft - vea mi respuesta a continuación
Mauricio Gracia Gutierrez
16

Instálelo usando NuGet:

Install-Package Newtonsoft.Json


Publicando esto como respuesta.

Zanon
fuente
Para .net core no necesita instalar newtonsoft - vea mi respuesta a continuación
Mauricio Gracia Gutierrez
7

O si usa dotnet Core,

agregar a su archivo .csproj

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

Y

dotnet restore
andrew lorien
fuente
Para .net core no necesita instalar newtonsoft - vea mi respuesta a continuación
Mauricio Gracia Gutierrez
6

Linux

Si usa Linux y .NET Core, consulte esta pregunta , querrá usar

dotnet add package Newtonsoft.Json

Y luego agrega

using Newtonsoft.Json;

a cualquier clase que lo necesite.

Evan Carroll
fuente
Para .net core no necesita instalar newtonsoft - vea mi respuesta a continuación
Mauricio Gracia Gutierrez
4

Herramientas -> Administrador de paquetes NuGet -> Consola del administrador de paquetes

PM> Install-Package Newtonsoft.Json
Aminur Rahman
fuente
Para .net core no necesita instalar newtonsoft - vea mi respuesta a continuación
Mauricio Gracia Gutierrez
2

Si está desarrollando un .Net Core WebApi o WebSite, no necesita instalar newtownsoft.json para realizar la serialización / deserealización de json

Solo asegúrese de que su método de controlador devuelva un JsonResulty llame return Json(<objectoToSerialize>);como este ejemplo

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 está desarrollando un .Net Framework WebApi o WebSite, debe usar NuGet para descargar e instalar el newtonsoft jsonpaquete.

"Proyecto" -> "Administrar paquetes NuGet" -> "Buscar" newtonsoft json ". -> haga clic en" 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);
        }
    }
}

Puede encontrar más detalles aquí: https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/formatting?view=aspnetcore-2.1

Mauricio Gracia Gutiérrez
fuente
0

Después de instalar el paquete, debe agregar newtonsoft.json.dll en la ruta de ensamblaje ejecutando el comando de flujo.

Antes de que podamos usar nuestro ensamblado, tenemos que agregarlo a la caché de ensamblados global (GAC). Abra el símbolo del sistema de Visual Studio 2008 nuevamente (para Vista / Windows7 / etc., ábralo como Administrador). Y ejecuta el siguiente comando. gacutil /id:\myMethodsForSSIS\myMethodsForSSIS\bin\Release\myMethodsForSSIS.dll

fluya este enlace para obtener más información http://microsoft-ssis.blogspot.com/2011/05/referencing-custom-assembly-inside.html

Shiv Roy
fuente
0

Pruebe esto en C #. Funciona:

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

Importar los siguientes espacios de nombres:

Para JsonConvert: using Newtonsoft.Json;

Para archivo: using System.IO;

Satish Babu
fuente