Як імпортувати 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
також переконайтеся, що 'використовуєте Newtonsoft.Json;' там є
Dhanuka777

46

клацніть правою кнопкою миші на проекті та виберіть Manage NuGet Packages.. У ньому виберіть Json.NETта встановіть

Після установки,

використовуйте наступний простір імен

using Newtonsoft.Json;

потім використовуйте наступне для десериалізації

JsonConvert.DeserializeObject

Для ядра .net вам не потрібно встановлювати newtonsoft - див. Мою відповідь нижче
Mauricio Gracia Gutierrez

16

Встановіть його за допомогою NuGet:

Install-Package Newtonsoft.Json


Опублікувавши це як відповідь.


Для ядра .net вам не потрібно встановлювати newtonsoft - див. Мою відповідь нижче
Mauricio Gracia Gutierrez

7

Або якщо ви використовуєте dotnet Core,

додайте у файл .csproj

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

І

dotnet restore

Для ядра .net вам не потрібно встановлювати newtonsoft - див. Мою відповідь нижче
Mauricio Gracia Gutierrez

6

Linux

Якщо ви використовуєте Linux та .NET Core, перегляньте це запитання , і ви захочете використовувати

dotnet add package Newtonsoft.Json

А потім додайте

using Newtonsoft.Json;

для будь-яких класів, які цього потребують.


Для ядра .net вам не потрібно встановлювати newtonsoft - див. Мою відповідь нижче
Mauricio Gracia Gutierrez


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;

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.