Bagaimana cara mengimpor JsonConvert di aplikasi C #?


98

Saya membuat proyek perpustakaan C #. Proyek memiliki baris ini dalam satu kelas:

JsonConvert.SerializeObject(objectList);

Saya mendapatkan pesan kesalahan

nama JsonConvert tidak ada dalam konteks saat ini.

Untuk memperbaikinya, saya menambahkan System.ServiceModel.Web.dllreferensi tetapi tidak berhasil. Bagaimana saya bisa mengatasi kesalahan ini?

Jawaban:


176

JsonConvertberasal dari namespace Newtonsoft.Json, bukanSystem.ServiceModel.Web

Gunakan NuGetuntuk mengunduhpackage

"Proyek" -> "Kelola paket NuGet" -> "Cari" newtonsoft json ". -> klik" install ".


apakah Anda sedang membangun .NET Core WebApi atau WebSite lihat jawaban saya di bawah ini
Mauricio Gracia Gutierrez

1
juga, pastikan 'using Newtonsoft.Json;' apakah ada
Dhanuka777

46

klik kanan pada proyek dan pilih Manage NuGet Packages.. Dalam itu pilih Json.NETdan pasang

Setelah instalasi,

gunakan namespace berikut

using Newtonsoft.Json;

kemudian gunakan perintah berikut untuk deserialisasi

JsonConvert.DeserializeObject

Untuk .net core Anda tidak perlu menginstal newtonsoft - lihat jawaban saya di bawah
Mauricio Gracia Gutierrez

16

Instal menggunakan NuGet:

Install-Package Newtonsoft.Json


Posting ini sebagai jawaban.


Untuk .net core Anda tidak perlu menginstal newtonsoft - lihat jawaban saya di bawah
Mauricio Gracia Gutierrez

7

Atau jika Anda menggunakan dotnet Core,

tambahkan ke file .csproj Anda

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

Dan

dotnet restore

Untuk .net core Anda tidak perlu menginstal newtonsoft - lihat jawaban saya di bawah
Mauricio Gracia Gutierrez



2

Jika Anda mengembangkan .Net Core WebApi atau WebSite, Anda tidak perlu menginstal newtownsoft.json untuk melakukan serialisasi / deserealisasi json

Pastikan bahwa metode pengontrol Anda mengembalikan JsonResultdan memanggil return Json(<objectoToSerialize>);seperti contoh ini

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

Jika Anda mengembangkan .Net Framework WebApi atau WebSite, Anda perlu menggunakan NuGet untuk mengunduh dan menginstal newtonsoft jsonpaket

"Proyek" -> "Kelola paket NuGet" -> "Cari" newtonsoft json ". -> klik" install ".

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

Detail selengkapnya dapat ditemukan di sini - https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/formatting?view=aspnetcore-2.1


0

Setelah menginstal paket, Anda perlu menambahkan newtonsoft.json.dll ke jalur assemble dengan menjalankan perintah mengalir.

Sebelum kita dapat menggunakan assembly kita, kita harus menambahkannya ke cache assembly global (GAC). Buka kembali Visual Studio 2008 Command Prompt (untuk Vista / Windows7 / dll. Buka sebagai Administrator). Dan jalankan perintah berikut. gacutil /id:\myMethodsForSSIS\myMethodsForSSIS\bin\Release\myMethodsForSSIS.dll

alirkan tautan ini untuk informasi lebih lanjut http://microsoft-ssis.blogspot.com/2011/05/referencing-custom-assembly-inside.html


0

Coba ini di C #. Berhasil:

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

Impor ruang nama di bawah ini:

Untuk JsonConvert: using Newtonsoft.Json;

Untuk File: using System.IO;

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.