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.dll
do referencji, ale nie miałem szczęścia. Jak mogę rozwiązać ten błąd?
kliknij prawym przyciskiem myszy projekt i wybierz
Manage NuGet Packages..
W tym wybierzJson.NET
i zainstalujPo instalacji,
użyj następującej przestrzeni nazw
using Newtonsoft.Json;
następnie użyj poniższego do deserializacji
źródło
Zainstaluj go za pomocą NuGet:
Publikowanie tego jako odpowiedzi.
źródło
Lub jeśli używasz dotnet Core,
dodaj do swojego pliku .csproj
<ItemGroup> <PackageReference Include="Newtonsoft.Json" Version="9.0.1" /> </ItemGroup>
I
źródło
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ą.
źródło
Narzędzia -> Menedżer pakietów NuGet -> Konsola Menedżera pakietów
źródło
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
JsonResult
i wywołuje,return Json(<objectoToSerialize>);
jak w tym przykładzienamespace 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 json
pakiet„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
źródło
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
źródło
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;
źródło