Tidak dapat menemukan JavaScriptSerializer di .Net 4.0

297

Saya tidak bisa menemukan JavaScriptSerializerobjek maupun System.Web.Script.Serializationnamespace di dalam Visual Studio 2010. Saya perlu membuat serial sesuatu ke JSON apa yang harus saya gunakan?

Dan ya, saya sudah memasukkan System.Web.Extensions(dalam System.Web.Extensions.dll) dalam proyek. Karena itulah saya kaget?

  • Saya tahu System.Web.Extensionsditandai sebagai usang dalam 3,5
Tahanan NOL
sumber
5
Saya memiliki masalah yang sama, dan saya harus mengatakan bahwa jawabannya tidak berguna. Saya menargetkan ".NET Framework 4", bukan ".NET 4 Client Profile". Saya telah mereferensikan perakitan System.Web.Extensions. Tetapi ketika saya mencoba menggunakan namespace System.Web.Script.Serialization, VS 2010 memberitahu saya "Tipe atau namespace Script tidak ada di namespace System.Web". Adakah yang menemukan solusi nyata untuk ini? Saya bingung!
twakjaco
Posting terkait di sini .
RBT

Jawaban:

523

Periksa apakah Anda menyertakan versi .net 4 System.Web.Extensions- ada versi 3.5 juga, tapi saya rasa itu tidak berfungsi.

Langkah-langkah ini bekerja untuk saya:

  1. Buat aplikasi konsol baru
  2. Ubah target menjadi .net 4 alih-alih Profil Klien
  3. Tambahkan referensi ke System.Web.Extensions(4.0)
  4. Dapatkan akses ke JavaScriptSerializerdalam Program.cs sekarang :-)
Steffen
sumber
di vb.net jangan lupa "baru" dan () seperti: Dim JsonConvert As New JavaScriptSerializer ()
zokaee hamid
125
  1. Klik kanan Referencesdan lakukan Add Reference, lalu dari Assemblies->Frameworkpilih System.Web.Extensions.
  2. Sekarang Anda harus dapat menambahkan yang berikut ke file kelas Anda:
    using System.Web.Script.Serialization;
Scott Johnson
sumber
sempurna saya bahkan lupa melakukan sesuatu seperti terima kasih
Khalil Liraqui
Bagus! penjelasan terperinci
charulatha krishnamoorthy
41

Dari hasil pencarian pertama di google:

http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx

Kelas JavaScriptSerializer

Menyediakan fungsionalitas serialisasi dan deserialisasi untuk aplikasi yang mendukung AJAX.

Hierarki Warisan

System.Object

System.Web.Script.Serialization.JavaScriptSerializer

Namespace: System.Web.Script.Serialization

Majelis: System.Web.Extensions (di System.Web.Extensions.dll)

Jadi, sertakan System.Web.Extensions.dllsebagai referensi.

Paul
sumber
3
Dua tahun kemudian, pada proyek yang sama sekali tidak terkait: itu juga membantu jika Anda memanfaatkannya dengan benar>.> (Itu bukan JavascriptSerializer).
neminem
25

Saya menggunakan Visual Studio 2015 dan akhirnya berlari melintasi posting ini.

Ya untuk digunakan

JavaScriptSerializer json = new JavaScriptSerializer();

Anda harus mengklik kanan pada referensi dan di bawah Sidang -> Kerangka pilih

System.Web.Extensions

Kemudian tambahkan referensi Anda

using System.Web.Script.Serialization;
Tom Stickel
sumber
15

Ini adalah cara mendapatkan JavaScriptSerializer tersedia di aplikasi Anda, penargetan .NET 4.0(penuh)

using System.Web.Script.Serialization;

Ini seharusnya memungkinkan Anda membuat JavaScriptSerializerobjek baru !

Alex Hopkins
sumber
Skrip tidak ada
KansaiRobot
12
using System.Web.Script.Serialization; 

sedang berkumpul: System.Web.Extensions (System.Web.Extensions.dll)

Ema.H
sumber
10

Apakah Anda menargetkan kerangka .NET 4 atau Profil Klien .NET 4?

Jika Anda menargetkan yang terakhir, Anda tidak akan menemukan kelas itu. Anda juga mungkin kehilangan referensi, kemungkinan ke ekstensi dll.

Christopher Currens
sumber
NET Framework. 4. Dan saya sudah memiliki 'System.Web.Extensions' termasuk dalam proyek
Tahanan NOL
Apakah ini proyek yang Anda tingkatkan dari versi .net sebelumnya?
Christopher Currens
Saya mengalami masalah ini dengan proyek yang saya tingkatkan. Tampaknya tidak dapat diselesaikan dengan menggunakan versi .net (3.5) yang asli ...
user1003221
9

Bagi mereka yang tampaknya mengikuti jawaban di atas tetapi masih memiliki masalah (misalnya, lihat komentar pertama pada pertanyaan poster):

Anda mungkin sedang mengerjakan solusi dengan banyak proyek. Proyek Anda tampaknya bekerja dalam referensi proyek lain, tetapi Anda sebenarnya memodifikasi file dari salah satu proyek lain. Sebagai contoh:

  • referensi proyek A. System.Web.Extensions
  • proyek A proyek referensi B

Tetapi jika file yang Anda modifikasi untuk digunakan System.Web.Script.Serializationada di proyek B, maka Anda perlu menambahkan referensi ke System.Web.Extensiondalam proyek B juga.

jltrem
sumber
8

Apakah Anda menyertakan referensi System.Web.Extensions? Jika Anda mengeklik tautan pertama Anda, tautan itu menunjukkan perakitan mana.

Davy8
sumber
Dalam hal ini mungkin periksa jawaban Christopher.
Davy8
5

Anda harus menambahkan referensi ke proyek.

Di Assemblies, ada System.Web.Extensions Tambahkan itu.

Setelah selesai dimasukkan:

    using System.Web;
    using System.Web.Script;
    using System.Web.Script.Serialization;

Itu berhasil bagi saya.

riahc3
sumber
3

Asal tahu saja, saya menggunakan Visual Studio 2013 dan memiliki masalah yang sama sampai saya menggunakan Properti Proyek untuk beralih ke kerangka kerja 3,5 dan kembali ke 4,5. Ini karena beberapa alasan mendaftarkan .dll dengan benar dan saya dapat menggunakan System.Web.Extensions .

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Milan
sumber
3

Anda dapat menggunakan opsi lain yaitu Newtonsoft.Json, Anda dapat menginstalnya dari NuGet Package Manager.

Peralatan >> Nuget Package Manager >> Package Manager Console dengan mengeluarkan perintah

Install-Package Newtonsoft.Json

atau

dengan menggunakan GUI di Tools >> Nuget Package Manager >> Kelola Paket NuGet untuk Solusi ...

masukkan deskripsi gambar di sini

Alexander Zaldostanov
sumber
Perhatikan bahwa ini adalah rekomendasi yang didokumentasikan oleh Microsoft . Pada .Net Core, Microsoft bahkan tidak lagi menawarkan JavaScriptSerializer (atau juga System.Web.Extensions).
Brian