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?

Jainendra
sumber

Jawaban:

176

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

Gunakan NuGetuntuk mengunduhpackage

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

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

Zanon
sumber
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
andrew lorien
sumber
Untuk .net core Anda tidak perlu menginstal newtonsoft - lihat jawaban saya di bawah
Mauricio Gracia Gutierrez
6

Linux

Jika Anda menggunakan Linux dan .NET Core, lihat pertanyaan ini , Anda akan ingin menggunakan

dotnet add package Newtonsoft.Json

Dan kemudian tambahkan

using Newtonsoft.Json;

untuk setiap kelas yang membutuhkan itu.

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

Alat -> NuGet Package Manager -> Package Manager Console

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

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

shiv roy
sumber
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;

Satish Babu
sumber