Я создал проект библиотеки C #. В проекте есть эта строка в одном классе:
JsonConvert.SerializeObject(objectList);
Я получаю сообщение об ошибке
имя JsonConvert не существует в текущем контексте.
Чтобы исправить это, я добавил System.ServiceModel.Web.dll
ссылки, но безуспешно. Как я могу решить эту ошибку?
щелкните правой кнопкой мыши проект и выберите
Manage NuGet Packages..
В нем выберитеJson.NET
и установитеПосле установки
используйте следующее пространство имен
using Newtonsoft.Json;
затем используйте следующее для десериализации
источник
Установите его с помощью NuGet:
Публикуем это как ответ.
источник
Или, если вы используете dotnet Core,
добавить в ваш .csproj файл
<ItemGroup> <PackageReference Include="Newtonsoft.Json" Version="9.0.1" /> </ItemGroup>
А также
источник
Linux
Если вы используете Linux и .NET Core, см. Этот вопрос , вы захотите использовать
dotnet add package Newtonsoft.Json
А затем добавить
using Newtonsoft.Json;
любым классам, которым это нужно.
источник
Инструменты -> Диспетчер пакетов NuGet -> Консоль диспетчера пакетов
источник
Если вы разрабатываете .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
источник
После установки пакета вам необходимо добавить 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
источник
Попробуйте это на C #. Оно работает:
var jsonObject = JsonConvert.DeserializeObject(File.ReadAllText(MyFilePath));
Импортируйте следующие пространства имен:
Для JsonConvert:
using Newtonsoft.Json;
Для файла:
using System.IO;
источник