Không thể tìm thấy JavaScriptSerializer trong .Net 4.0


297

Tôi dường như không thể tìm thấy JavaScriptSerializerđối tượng cũng như không System.Web.Script.Serializationgian tên trong Visual Studio 2010. Tôi cần tuần tự hóa một cái gì đó sang JSON Tôi nên sử dụng cái gì?

Và vâng, tôi đã bao gồm System.Web.Extensions(trong System.Web.Extensions.dll) trong dự án. Đó là lý do tại sao tôi bị sốc?

  • Tôi biết System.Web.Extensionsđã bị đánh dấu là lỗi thời trong 3,5

5
Tôi có cùng một vấn đề, và tôi phải nói rằng câu trả lời là khá vô ích. Tôi đang nhắm mục tiêu ".NET Framework 4", không phải "Hồ sơ khách hàng .NET 4". Tôi đã tham chiếu cụm System.Web.Extensions. Nhưng khi tôi thử sử dụng không gian tên System.Web.Script.Serialization, VS 2010 cho tôi biết "Loại hoặc không gian tên Script không tồn tại trong không gian tên System.Web". Có ai tìm thấy một giải pháp thực sự cho điều này? Tôi bối rối!
twakjaco

Bài viết liên quan ở đây .
RBT

Câu trả lời:


523

Kiểm tra xem bạn có bao gồm phiên bản .net 4 System.Web.Extensionskhông - cũng có phiên bản 3.5, nhưng tôi không nghĩ rằng phiên bản đó hoạt động.

Các bước này làm việc cho tôi:

  1. Tạo một ứng dụng giao diện điều khiển mới
  2. Thay đổi mục tiêu thành .net 4 thay vì Hồ sơ khách hàng
  3. Thêm một tham chiếu đến System.Web.Extensions(4.0)
  4. Có quyền truy cập JavaScriptSerializervào Chương trình.cs ngay bây giờ :-)

trong vb.net đừng quên "mới" và () như: Dim JsonConvert As New JavaScriptSerializer ()
zokaee hamid

125
  1. Nhấp chuột phải Referencesvà làm Add Reference, sau đó từ Assemblies->Frameworkchọn System.Web.Extensions.
  2. Bây giờ bạn sẽ có thể thêm các mục sau vào tệp lớp của mình:
    using System.Web.Script.Serialization;

hoàn hảo tôi thậm chí đã quên làm điều gì đó như cảm ơn bạn
Khalil Liraqui

Tuyệt quá! giải thích chi tiết
charulatha krishnamoorthy

41

Từ kết quả tìm kiếm đầu tiên trên google:

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

Lớp JavaScriptSerializer

Cung cấp chức năng tuần tự hóa và giải tuần tự hóa cho các ứng dụng hỗ trợ AJAX.

Kế thừa phân cấp

System.Object

System.Web.Script.Serialization.JavaScriptSerializer

Không gian tên: System.Web.Script.Serialization

Hội: System.Web.Extensions (trong System.Web.Extensions.dll)

Vì vậy, bao gồm System.Web.Extensions.dllnhư một tài liệu tham khảo.


3
Hai năm sau, trong một dự án hoàn toàn không liên quan: nó cũng hữu ích nếu bạn viết hoa đúng>.> (Đó không phải là JavascriptSerializer).
neminem 4/03/2015

25

Tôi đang sử dụng Visual Studio 2015 và cuối cùng đã chạy qua bài đăng này.

Có để sử dụng

JavaScriptSerializer json = new JavaScriptSerializer();

Bạn phải nhấp chuột phải vào tài liệu tham khảo và trong phần Lắp ráp -> Chọn khung

System.Web.Extensions

Sau đó thêm vào tài liệu tham khảo của bạn

using System.Web.Script.Serialization;

15

Đây là cách để JavaScriptSerializer có sẵn trong ứng dụng của bạn, nhắm mục tiêu .NET 4.0(đầy đủ)

using System.Web.Script.Serialization;

Điều này sẽ cho phép bạn tạo một JavaScriptSerializerđối tượng mới !


Script không tồn tại
KansaiRobot

12
using System.Web.Script.Serialization; 

đang được lắp ráp: System.Web.Extensions (System.Web.Extensions.dll)


10

Bạn đang nhắm mục tiêu khung .NET 4 hoặc Hồ sơ khách hàng .NET 4?

Nếu bạn đang nhắm mục tiêu sau, bạn sẽ không tìm thấy lớp đó. Bạn cũng có thể thiếu một tài liệu tham khảo, có khả năng là một phần mở rộng dll.


.NET Framework 4. Và tôi đã có 'System.Web.Extensions' trong dự án
Tù nhân ZERO

Đây có phải là dự án bạn đã nâng cấp từ phiên bản trước đó của .net không?
Christopher Currens

Tôi đang gặp vấn đề này với một dự án tôi đã nâng cấp. Nó dường như không được giải quyết bằng cách sử dụng phiên bản .net gốc (3.5) mặc dù ...
user1003221

9

Đối với những người dường như đang theo dõi các câu trả lời ở trên nhưng vẫn có vấn đề (ví dụ: xem bình luận đầu tiên về câu hỏi của người đăng):

Bạn có thể đang làm việc trong một giải pháp với nhiều dự án. Dự án mà bạn dường như đang làm việc trong các tài liệu tham khảo các dự án khác, nhưng bạn thực sự đang sửa đổi một tệp từ một trong các dự án khác. Ví dụ:

  • tài liệu tham khảo dự án A System.Web.Extensions
  • dự án A tài liệu tham khảo dự án B

Nhưng nếu tệp bạn đang sửa đổi sử dụng System.Web.Script.Serializationnằm trong dự án B, thì bạn cũng sẽ cần thêm một tham chiếu đến System.Web.Extensiontrong dự án B.


8

Bạn đã bao gồm một tài liệu tham khảo System.Web.Extensions? Nếu bạn nhấp vào liên kết đầu tiên của bạn, nó sẽ nói nó lắp ráp.


Trong trường hợp đó có thể kiểm tra câu trả lời của @ Christopher.
Davy8

5

Bạn phải thêm tài liệu tham khảo cho dự án.

Trong Assemblies, có System.Web.Extensions Thêm vào đó.

Khi đã xong, đặt:

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

Điều đó làm việc cho tôi.


3

Chỉ để bạn biết, tôi đang sử dụng Visual Studio 2013 và gặp vấn đề tương tự cho đến khi tôi sử dụng Project Properties để chuyển sang khung 3.5 và quay lại 4.5. Điều này vì một số lý do đã đăng ký đúng cách và tôi có thể sử dụng System.Web.Extensions .

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


3

Bạn có thể sử dụng một tùy chọn khác là Newtonsoft.Json, bạn có thể cài đặt nó từ NuGet Gói Manager.

Công cụ >> Trình quản lý gói Nuget >> Bảng điều khiển trình quản lý gói bằng cách ban hành lệnh

Install-Package Newtonsoft.Json

hoặc là

bằng cách sử dụng GUI tại Công cụ >> Trình quản lý gói Nuget >> Quản lý gói NuGet cho Giải pháp ...

nhập mô tả hình ảnh ở đây


Lưu ý rằng đây là khuyến nghị tài liệu của Microsoft . Trên .Net Core, Microsoft thậm chí không còn cung cấp JavaScriptSerializer (cũng như phần còn lại của System.Web.Extensions).
Brian
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.