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?

Jainendra
quelle

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.

Sam Leach
quelle
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
Krishna Deepak
quelle
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.

Zanon
quelle
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
Andrew Lorien
quelle
Für .net Core müssen Sie NewtonSoft nicht installieren - siehe meine Antwort unten
Mauricio Gracia Gutierrez
6

Linux

Wenn Sie Linux und .NET Core verwenden, lesen Sie diese Frage , die Sie verwenden möchten

dotnet add package Newtonsoft.Json

Und dann hinzufügen

using Newtonsoft.Json;

an alle Klassen, die das brauchen.

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

Tools -> NuGet Package Manager -> Package Manager-Konsole

PM> Install-Package Newtonsoft.Json
Aminur Rahman
quelle
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

Mauricio Gracia Gutierrez
quelle
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

Shiv Roy
quelle
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;

Satish Babu
quelle