Wie importiere ich JsonConvert in eine C # -Anwendung?


91

Ich habe ein C # -Bibliotheksprojekt erstellt. Das Projekt hat diese Zeile in einer Klasse:

JsonConvert.SerializeObject(objectList);

Ich bekomme eine Fehlermeldung

Der Name JsonConvert existiert im aktuellen Kontext nicht.

Um das zu beheben, habe ich System.ServiceModel.Web.dllReferenzen hinzugefügt , aber kein Glück gehabt. Wie kann ich diesen Fehler beheben?

Antworten:


167

JsonConvertist aus dem Namespace Newtonsoft.Json, nichtSystem.ServiceModel.Web

Verwenden Sie NuGetzum Herunterladen derpackage

"Projekt" -> "NuGet-Pakete verwalten" -> "Nach" newtonsoft json suchen ". -> auf" installieren "klicken.


Wenn Sie ein .NET Core WebApi oder eine WebSite erstellen, siehe meine Antwort unten
Mauricio Gracia Gutierrez

1
Stellen Sie außerdem sicher, dass Sie Newtonsoft.Json verwenden. ist da
Dhanuka777

42

Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Manage NuGet Packages.. In diesem auswählen Json.NETund installieren

Nach der Installation,

Verwenden Sie den folgenden Namespace

using Newtonsoft.Json;

Verwenden Sie dann Folgendes, um zu deserialisieren

JsonConvert.DeserializeObject

Für .net Core müssen Sie NewtonSoft nicht installieren - siehe meine Antwort unten
Mauricio Gracia Gutierrez

16

Installieren Sie es mit NuGet:

Install-Package Newtonsoft.Json


Poste dies als Antwort.


Für .net Core müssen Sie NewtonSoft nicht installieren - siehe meine Antwort unten
Mauricio Gracia Gutierrez

7

Oder wenn Sie Dotnet Core verwenden,

Fügen Sie Ihrer .csproj-Datei hinzu

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

Und

dotnet restore

Für .net Core müssen Sie NewtonSoft nicht installieren - siehe meine Antwort unten
Mauricio Gracia Gutierrez



2

Wenn Sie ein .Net Core WebApi oder eine WebSite entwickeln, müssen Sie newtownsoft.json nicht installieren, um die JSON- Serialisierung / Deserealisierung durchzuführen

So stellen Sie sicher , dass Ihre Controller - Methode einen zurückgibt JsonResultund Anruf return Json(<objectoToSerialize>);wie in diesem Beispiel

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

Wenn Sie ein .NET Framework WebApi oder eine WebSite entwickeln, müssen Sie NuGet verwenden, um das newtonsoft jsonPaket herunterzuladen und zu installieren

"Projekt" -> "NuGet-Pakete verwalten" -> "Nach" newtonsoft json suchen ". -> auf" installieren "klicken.

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

Weitere Details finden Sie hier - https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/formatting?view=aspnetcore-2.1


0

Nach dem Installieren des Pakets müssen Sie die Datei newtonsoft.json.dll zum Assemble-Pfad hinzufügen, indem Sie den fließenden Befehl ausführen.

Bevor wir unsere Assembly verwenden können, müssen wir sie dem globalen Assemblycache (GAC) hinzufügen. Öffnen Sie die Visual Studio 2008-Eingabeaufforderung erneut (für Vista / Windows7 / etc. Öffnen Sie sie als Administrator). Führen Sie den folgenden Befehl aus. gacutil /id:\myMethodsForSSIS\myMethodsForSSIS\bin\Release\myMethodsForSSIS.dll

Weitere Informationen finden Sie unter diesem Link unter http://microsoft-ssis.blogspot.com/2011/05/referencing-custom-assembly-inside.html


0

Versuchen Sie dies in C #. Es klappt:

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

Importieren Sie die folgenden Namespaces:

Für JsonConvert: using Newtonsoft.Json;

Für Datei: using System.IO;

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.