Как импортировать JsonConvert в приложение C #?

98

Я создал проект библиотеки C #. В проекте есть эта строка в одном классе:

JsonConvert.SerializeObject(objectList);

Я получаю сообщение об ошибке

имя JsonConvert не существует в текущем контексте.

Чтобы исправить это, я добавил System.ServiceModel.Web.dllссылки, но безуспешно. Как я могу решить эту ошибку?

Джайнендра
источник

Ответы:

176

JsonConvertиз пространства имен Newtonsoft.Json, а неSystem.ServiceModel.Web

Используйте NuGetдля загрузкиpackage

«Проект» -> «Управление пакетами NuGet» -> «Найдите« newtonsoft json »-> нажмите« установить ».

Сэм Лич
источник
вы создаете .NET Core WebApi или WebSite, см. мой ответ ниже
Маурисио Грасиа Гутьеррес,
1
также убедитесь, что 'using Newtonsoft.Json;' есть там
Dhanuka777 08
46

щелкните правой кнопкой мыши проект и выберите Manage NuGet Packages.. В нем выберите Json.NETи установите

После установки

используйте следующее пространство имен

using Newtonsoft.Json;

затем используйте следующее для десериализации

JsonConvert.DeserializeObject
Кришна Дипак
источник
Для ядра .net вам не нужно устанавливать newtonsoft - см. Мой ответ ниже
Маурисио Грасиа Гутьеррес
16

Установите его с помощью NuGet:

Install-Package Newtonsoft.Json


Публикуем это как ответ.

Занон
источник
Для ядра .net вам не нужно устанавливать newtonsoft - см. Мой ответ ниже
Маурисио Грасиа Гутьеррес
7

Или, если вы используете dotnet Core,

добавить в ваш .csproj файл

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

А также

dotnet restore
Эндрю Лориен
источник
Для ядра .net вам не нужно устанавливать newtonsoft - см. Мой ответ ниже
Маурисио Грасиа Гутьеррес
6

Linux

Если вы используете Linux и .NET Core, см. Этот вопрос , вы захотите использовать

dotnet add package Newtonsoft.Json

А затем добавить

using Newtonsoft.Json;

любым классам, которым это нужно.

Эван Кэрролл
источник
Для ядра .net вам не нужно устанавливать newtonsoft - см. Мой ответ ниже
Маурисио Грасиа Гутьеррес
4

Инструменты -> Диспетчер пакетов NuGet -> Консоль диспетчера пакетов

PM> Install-Package Newtonsoft.Json
Аминур Рахман
источник
Для ядра .net вам не нужно устанавливать newtonsoft - см. Мой ответ ниже
Маурисио Грасиа Гутьеррес
2

Если вы разрабатываете .Net Core WebApi или WebSite, вам не нужно устанавливать newtownsoft.json для выполнения сериализации / десериализации json.

Просто убедитесь, что ваш метод контроллера возвращает a JsonResultи вызывает return Json(<objectoToSerialize>);как в этом примере

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

Если вы разрабатываете .Net Framework WebApi или WebSite, вам необходимо использовать NuGet для загрузки и установки newtonsoft jsonпакета.

«Проект» -> «Управление пакетами NuGet» -> «Найдите« newtonsoft json »-> нажмите« установить ».

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

Более подробную информацию можно найти здесь - https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/formatting?view=aspnetcore-2.1

Маурисио Грасиа Гутьеррес
источник
0

После установки пакета вам необходимо добавить newtonsoft.json.dll в путь сборки, выполнив текущую команду.

Прежде чем мы сможем использовать нашу сборку, мы должны добавить ее в глобальный кеш сборок (GAC). Снова откройте командную строку Visual Studio 2008 (для Vista / Windows7 / и т. Д. Откройте ее от имени администратора). И выполните следующую команду. gacutil /id:\myMethodsForSSIS\myMethodsForSSIS\bin\Release\myMethodsForSSIS.dll

перейдите по этой ссылке для получения дополнительной информации http://microsoft-ssis.blogspot.com/2011/05/referencing-custom-assembly-inside.html

Шив Рой
источник
0

Попробуйте это на C #. Оно работает:

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

Импортируйте следующие пространства имен:

Для JsonConvert: using Newtonsoft.Json;

Для файла: using System.IO;

Сатиш Бабу
источник