Jak zaimportować JsonConvert w aplikacji C #?

98

Stworzyłem projekt biblioteki C #. Projekt ma tę linię w jednej klasie:

JsonConvert.SerializeObject(objectList);

Otrzymuję błąd mówiąc

nazwa JsonConvert nie istnieje w bieżącym kontekście.

Aby to naprawić, dodałem System.ServiceModel.Web.dlldo referencji, ale nie miałem szczęścia. Jak mogę rozwiązać ten błąd?

Jainendra
źródło

Odpowiedzi:

176

JsonConvertpochodzi z przestrzeni nazw Newtonsoft.Json, a nieSystem.ServiceModel.Web

Służy NuGetdo pobieraniapackage

„Projekt” -> „Zarządzaj pakietami NuGet” -> „Wyszukaj„ newtonsoft json ”. -> kliknij„ zainstaluj ”.

Sam Leach
źródło
czy tworzysz platformę .NET Core WebApi lub witrynę internetową, zobacz moją odpowiedź poniżej
Mauricio Gracia Gutierrez
1
upewnij się również, że 'using Newtonsoft.Json;' jest tam
Dhanuka777
46

kliknij prawym przyciskiem myszy projekt i wybierz Manage NuGet Packages.. W tym wybierz Json.NETi zainstaluj

Po instalacji,

użyj następującej przestrzeni nazw

using Newtonsoft.Json;

następnie użyj poniższego do deserializacji

JsonConvert.DeserializeObject
Krishna Deepak
źródło
W przypadku .net core nie musisz instalować Newtonsoft - zobacz moją odpowiedź poniżej
Mauricio Gracia Gutierrez
16

Zainstaluj go za pomocą NuGet:

Install-Package Newtonsoft.Json


Publikowanie tego jako odpowiedzi.

Zanon
źródło
W przypadku .net core nie musisz instalować Newtonsoft - zobacz moją odpowiedź poniżej
Mauricio Gracia Gutierrez
7

Lub jeśli używasz dotnet Core,

dodaj do swojego pliku .csproj

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

I

dotnet restore
andrew lorien
źródło
W przypadku .net core nie musisz instalować Newtonsoft - zobacz moją odpowiedź poniżej
Mauricio Gracia Gutierrez
6

Linux

Jeśli używasz Linuksa i .NET Core, zobacz to pytanie , zechcesz użyć

dotnet add package Newtonsoft.Json

A potem dodaj

using Newtonsoft.Json;

do zajęć, które tego potrzebują.

Evan Carroll
źródło
W przypadku .net core nie musisz instalować Newtonsoft - zobacz moją odpowiedź poniżej
Mauricio Gracia Gutierrez
4

Narzędzia -> Menedżer pakietów NuGet -> Konsola Menedżera pakietów

PM> Install-Package Newtonsoft.Json
Aminur Rahman
źródło
NET rdzenia nie musisz instalować newtonsoft - zobacz moje answerbelow
Mauricio Gracia Gutierrez
2

Jeśli tworzysz .Net Core WebApi lub WebSite, nie musisz instalować newtownsoft.json, aby przeprowadzić serializację / deserealizację json

Po prostu upewnij się, że metoda kontrolera zwraca a JsonResulti wywołuje, return Json(<objectoToSerialize>);jak w tym przykładzie

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

Jeśli tworzysz .Net Framework WebApi lub WebSite, musisz użyć NuGet, aby pobrać i zainstalować newtonsoft jsonpakiet

„Projekt” -> „Zarządzaj pakietami NuGet” -> „Wyszukaj„ newtonsoft json ”. -> kliknij„ zainstaluj ”.

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

Więcej szczegółów można znaleźć tutaj - https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/formatting?view=aspnetcore-2.1

Mauricio Gracia Gutierrez
źródło
0

Po zainstalowaniu pakietu należy dodać plik newtonsoft.json.dll do ścieżki asemblacji, uruchamiając polecenie przepływu.

Zanim będziemy mogli użyć naszego zestawu, musimy dodać go do globalnej pamięci podręcznej zestawów (GAC). Otwórz ponownie wiersz polecenia programu Visual Studio 2008 (w przypadku systemu Vista / Windows7 / itp. Otwórz go jako administrator). I wykonaj następujące polecenie. gacutil /id:\myMethodsForSSIS\myMethodsForSSIS\bin\Release\myMethodsForSSIS.dll

poprowadź ten link, aby uzyskać więcej informacji http://microsoft-ssis.blogspot.com/2011/05/referencing-custom-assembly-inside.html

shiv roy
źródło
0

Spróbuj tego w C #. To działa:

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

Importuj poniższe przestrzenie nazw:

W przypadku JsonConvert: using Newtonsoft.Json;

Plik: using System.IO;

Satish Babu
źródło