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

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 :-)

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;

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.


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;

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 !


Skrip tidak ada
KansaiRobot

12
using System.Web.Script.Serialization; 

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


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.


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.


8

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


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.


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


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


Perhatikan bahwa ini adalah rekomendasi yang didokumentasikan oleh Microsoft . Pada .Net Core, Microsoft bahkan tidak lagi menawarkan JavaScriptSerializer (atau juga System.Web.Extensions).
Brian
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.