JsonConvert C # uygulamasında nasıl içe aktarılır?


98

Bir C # kütüphane projesi oluşturdum. Proje bu satıra bir sınıfta sahiptir:

JsonConvert.SerializeObject(objectList);

Söylerken hata alıyorum

JsonConvert adı mevcut bağlamda mevcut değil.

Bunu düzeltmek System.ServiceModel.Web.dlliçin referanslara ekledim ama hiç şansım olmadı. Bu hatayı nasıl çözebilirim?

Yanıtlar:


176

JsonConvertad alanındandır Newtonsoft.Json, değilSystem.ServiceModel.Web

NuGetİndirmek için kullanınpackage

"Proje" -> "NuGet paketlerini yönet" -> "" newtonsoft json "araması yapın. ->" yükle "yi tıklayın.


.NET Core WebApi veya WebSitesi mi oluşturuyorsunuz? Aşağıdaki cevabıma bakın
Mauricio Gracia Gutierrez

1
ayrıca, 'Newtonsoft.Json kullandığından' emin olun; orada
Dhanuka777

46

projeye sağ tıklayın ve Manage NuGet Packages.. seçin Json.NETve kurun.

Yüklemeden sonra,

aşağıdaki ad alanını kullanın

using Newtonsoft.Json;

ardından seriyi kaldırmak için aşağıdakileri kullanın

JsonConvert.DeserializeObject

.Net çekirdeği için newtonsoft yüklemenize gerek yok - cevabıma aşağıdan bakın
Mauricio Gracia Gutierrez

16

NuGet kullanarak kurun:

Install-Package Newtonsoft.Json


Gönderme Bu cevap olarak.


.Net çekirdeği için newtonsoft yüklemenize gerek yok - cevabıma aşağıdan bakın
Mauricio Gracia Gutierrez

7

Veya dotnet Core kullanıyorsanız,

.csproj dosyanıza ekleyin

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

Ve

dotnet restore

.Net çekirdeği için newtonsoft yüklemenize gerek yok - cevabıma aşağıdan bakın
Mauricio Gracia Gutierrez


4

Araçlar -> NuGet Paket Yöneticisi -> Paket Yöneticisi Konsolu

PM> Install-Package Newtonsoft.Json

.Net çekirdeği için newtonsoft yüklemenize gerek yok - cevabıma aşağıdan bakın
Mauricio Gracia Gutierrez

2

Eğer varsa bir .Net Çekirdek WebAPI veya WebSitesi gelişmekte sen newtownsoft.json yüklemenize gerek Yüklü json seri / deserealization gerçekleştirmek için

Denetleyici yönteminizin a döndürdüğünden emin olun JsonResultve return Json(<objectoToSerialize>);bu örnek gibi çağırın

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

NET Framework WebApi veya WebSite geliştiriyorsanız , newtonsoft jsonpaketi indirmek ve yüklemek için NuGet kullanmanız gerekir

"Proje" -> "NuGet paketlerini yönet" -> "" newtonsoft json "araması yapın. ->" yükle "yi tıklayın.

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

Daha fazla ayrıntı burada bulunabilir - https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/formatting?view=aspnetcore-2.1


0

Paketi kurduktan sonra, newtonsoft.json.dll dosyasını, akış komutunu çalıştırarak montaj yoluna eklemeniz gerekir.

Derlememizi kullanmadan önce, onu genel derleme önbelleğine (GAC) eklemeliyiz. Visual Studio 2008 Komut İstemi'ni tekrar açın (Vista / Windows7 / vb. İçin Yönetici olarak açın). Ve aşağıdaki komutu çalıştırın. gacutil /id:\myMethodsForSSIS\myMethodsForSSIS\bin\Release\myMethodsForSSIS.dll

daha fazla bilgi için bu bağlantıyı akıtın http://microsoft-ssis.blogspot.com/2011/05/referencing-custom-assembly-inside.html


0

Bunu C # ile deneyin. İşe yarıyor:

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

Aşağıdaki ad alanlarını içe aktarın:

JsonConvert için: using Newtonsoft.Json;

Dosya için: using System.IO;

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.