.Net 4.0'da JavaScriptSerializer bulunamıyor


297

JavaScriptSerializerNesneyi veya System.Web.Script.SerializationVisual Studio 2010 içindeki ad alanını bulamıyorum . JSON için bir şey serileştirmek gerekiyor Ne kullanmam gerekiyor?

Ve evet, zaten System.Web.Extensions(System.Web.Extensions.dll) proje dahil. Bu yüzden şok oldum?

  • Ben 3.5 System.Web.Extensionsyılında eski olarak işaretlenmiş biliyorum

5
Aynı problemim var ve cevapların oldukça işe yaramaz olduğunu söylemeliyim. ".NET Framework 4 " ü değil, ".NET 4 İstemci Profili" ni hedefliyorum . Ben var montaj System.Web.Extensions başvurulan. Ancak System.Web.Script.Serialization ad alanını kullanmaya çalıştığımda, VS 2010 "System.Web ad alanında tür veya ad alanı Komut Dosyası yok" diyor. Herkes bunun için gerçek bir çözüm buldu mu? Şoktayım!
twakjaco

İlgili yazı burada .
RBT

Yanıtlar:


523

.Net 4 sürümünü ekleyip eklemediğinizi kontrol edin System.Web.Extensions- 3.5 sürümü de var, ancak bunun işe yaradığını düşünmüyorum.

Bu adımlar benim için çalışıyor:

  1. Yeni bir konsol uygulaması oluşturma
  2. Hedefi, İstemci Profili yerine .net 4 olarak değiştirin
  3. System.Web.Extensions(4.0) ' a referans ekle
  4. JavaScriptSerializerŞimdi Program.cs programına erişebilirsiniz :-)

içinde vb.net unutmayın "yeni" ve () gibi: Dim JsonConvert As Yeni JavaScriptSerializer ()
zokaee hamid

125
  1. Sağ tıklayın Referencesve yapın Add Reference, ardından Assemblies->Frameworkseçin System.Web.Extensions.
  2. Şimdi sınıf dosyanıza aşağıdakileri ekleyebilmelisiniz:
    using System.Web.Script.Serialization;

mükemmel ben bile teşekkür ederim gibi bir şey yapmayı unuttum
Khalil Liraqui

Harika! ayrıntılı bir açıklama
charulatha krishnamoorthy

41

Google'daki ilk arama sonucundan:

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

JavaScriptSerializer Sınıfı

AJAX özellikli uygulamalar için serileştirme ve serileştirme işlevselliği sağlar.

Kalıtım Hiyerarşisi

System.Object

System.Web.Script.Serialization.JavaScriptSerializer

Ad alanı: System.Web.Script.Serialization

Derleme: System.Web.Extensions (System.Web.Extensions.dll içinde)

Yani, System.Web.Extensions.dllreferans olarak ekleyin .


3
İki yıl sonra, tamamen ilgisiz bir projede: doğru şekilde büyük harf kullanmanız durumunda da yardımcı olur.> (JavascriptSerializer değil).
neminem

25

Visual Studio 2015 kullanıyorum ve nihayet bu yazıyla karşılaştım.

Kullanmak için evet

JavaScriptSerializer json = new JavaScriptSerializer();

Referanslara sağ tıklamanız ve Montajlar -> Çerçeve seçiminin altında

System.Web.Extensions

Sonra referansınızı ekleyin

using System.Web.Script.Serialization;

15

JavaScriptSerializer'ı uygulamanızda kullanılabilir hale getirme, hedefleme .NET 4.0(tam)

using System.Web.Script.Serialization;

Bu, yeni bir JavaScriptSerializernesne oluşturmanıza izin vermelidir !


Senaryo mevcut değil
KansaiRobot 25:07

12
using System.Web.Script.Serialization; 

derlemede: System.Web.Extensions (System.Web.Extensions.dll)


10

.NET 4 çerçevesini veya .NET 4 İstemci Profilini mı hedefliyorsunuz?

İkincisini hedefliyorsanız, bu sınıfı bulamazsınız. Ayrıca bir uzantı dll muhtemelen bir referans eksik olabilir.


.NET Framework 4. Ve zaten projeye dahil 'System.Web.Extensions' var
Mahkum ZERO

Bu, .net'in önceki bir sürümünden yükselttiğiniz bir proje mi?
Christopher Currens

Yükselttiğim bir projeyle bu sorunu yaşıyorum. Orijinal .net sürümü (3.5) kullanılarak çözülmüş gibi görünmüyor ...
user1003221

9

Yukarıdaki cevapları takip ediyor gibi görünen ancak yine de sorunu olanlar için (örneğin, posterin sorusuyla ilgili ilk yoruma bakın):

Muhtemelen birçok projeyle bir çözüm üzerinde çalışıyorsunuz. Çalışmakta olduğunuz proje diğer projelere referansta bulunuyor, ancak aslında diğer projelerden birinden bir dosyayı değiştiriyorsunuz. Örneğin:

  • proje A referansları System.Web.Extensions
  • A projesi referanslar B projesi

Ancak kullanmak için değiştirdiğiniz dosya System.Web.Script.SerializationB projesinde ise, B projesine de bir başvuru eklemeniz gerekir System.Web.Extension.


8

Bir referans eklediniz mi System.Web.Extensions? İlk bağlantınıza tıklarsanız hangi montajda olduğunu söyler.


Bu durumda belki @ Christopher'ın cevabına bir göz atın.
Davy8

5

Referansı projeye eklemelisiniz.

Montajlarda, bir System.Web.Extensions var Bunu ekleyin.

Bu yapıldıktan sonra:

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

Bu benim için çalıştı.


3

Bildiğiniz gibi, Visual Studio 2013 kullanıyorum ve 3.5 çerçeveye geçmek ve 4.5'e geri dönmek için Proje Özellikleri'ni kullanana kadar aynı sorunu yaşadım. Bu nedenle .dll düzgün kaydedildi ve System.Web.Extensions kullanabilirsiniz .

resim açıklamasını buraya girin

resim açıklamasını buraya girin


3

Newtonsoft.Json olan başka bir seçenek kullanabilirsiniz, bunu NuGet Package Manager'dan yükleyebilirsiniz.

Araçlar >> Nuget Paket Yöneticisi >> Komut vererek Paket Yöneticisi Konsolu

Install-Package Newtonsoft.Json

veya

Tools >> Nuget Package Manager'daki GUI'yi kullanarak >> Çözüm için NuGet Paketlerini Yönetin ...

resim açıklamasını buraya girin


Bunun Microsoft'un belgelenmiş önerisi olduğunu unutmayın . Net Core'da Microsoft artık JavaScriptSerializer (veya System.Web.Extensions'ın geri kalanını da) sunmuyor.
Brian
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.