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?

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 ”.


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

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.


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

W przypadku .net core nie musisz instalować Newtonsoft - zobacz moją odpowiedź poniżej
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


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


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;

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.