.Net 4.0에서 JavaScriptSerializer를 찾을 수 없습니다


297

Visual Studio 2010 내 에서 JavaScriptSerializer개체 나 System.Web.Script.Serialization네임 스페이스 를 찾을 수없는 것 같습니다 . 무엇을 사용해야하는지 JSON으로 직렬화해야합니까?

그리고 예, System.Web.Extensions프로젝트에 이미 (System.Web.Extensions.dll에) 포함되어 있습니다 . 내가 충격을받는 이유는 무엇입니까?

  • 나는 알 수 있습니까 System.Web.Extensions로 표시되었다 쓸모 3.5

5
나는 같은 문제가 있으며, 대답이 꽤 쓸모 없다고 말해야합니다. ".NET 4 Client Profile"이 아닌 ".NET Framework 4"를 대상으로합니다 . 나는 한 어셈블리 System.Web.Extensions를 참조. 그러나 System.Web.Script.Serialization 네임 스페이스를 사용하려고하면 VS 2010에서 "System.Web 네임 스페이스에 형식 또는 네임 스페이스 스크립트가 없습니다"라고 알려줍니다. 누구든지 이것에 대한 진정한 해결책을 찾았습니까? 난처 치다!
— twakjaco

관련 게시물 here .
— RBT

답변:


523

.net 4 버전을 포함했는지 확인하십시오 System.Web.Extensions-3.5 버전도 있지만 작동하지 않는다고 생각합니다.

이 단계는 저에게 효과적입니다.

  1. 새로운 콘솔 응용 프로그램 만들기
  2. 클라이언트 프로파일 대신 대상을 .net 4로 변경
  3. System.Web.Extensions(4.0)에 참조 추가
  4. JavaScriptSerializerProgram.cs에 액세스하십시오 :-)

희미한 JsonConvert으로 새로운 JavaScriptSerializer () : vb.net에서와 같은) ( "새"를 잊지 마세요
— zokaee 하미드

124
  1. 마우스 오른쪽 단추를 클릭 References하고 수행 Add Reference한 다음 Assemblies->Framework선택하십시오 System.Web.Extensions.
  2. 이제 클래스 파일에 다음을 추가 할 수 있습니다.
    using System.Web.Script.Serialization;

완벽한 나는 심지어 당신에게 감사와 같은 일을 잊어 버렸습니다
— Khalil

큰! 자세한 설명
— charulatha krishnamoorthy

41

Google의 첫 번째 검색 결과에서 :

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

JavaScriptSerializer 클래스

AJAX 가능 애플리케이션에 대한 직렬화 및 역 직렬화 기능을 제공합니다.

상속 계층

System.Object

System.Web.Script.Serialization.JavaScriptSerializer

네임 스페이스 : System.Web.Script.Serialization

어셈블리 : System.Web.Extensions (System.Web.Extensions.dll에 있음)

따라서 System.Web.Extensions.dll참조로 포함 하십시오.


3
2 년 후, 완전히 관련이없는 프로젝트에서 :>.>를 올바르게 대문자로 사용하면 도움이됩니다 (JavascriptSerializer가 아님).
— neminem

25

Visual Studio 2015를 사용하고 있으며 마지막 으로이 게시물을 보았습니다.

그렇습니다

JavaScriptSerializer json = new JavaScriptSerializer();

참조를 마우스 오른쪽 버튼으로 클릭하고 어셈블리-> 프레임 워크에서

System.Web.Extensions

그런 다음 참조에 추가하십시오

using System.Web.Script.Serialization;

15

이것은 표적으로, 응용 프로그램에서 사용할 수 JavaScriptSerializer을 얻는 방법이다 .NET 4.0(전체)

using System.Web.Script.Serialization;

새 JavaScriptSerializer객체 를 만들 수 있습니다 !


스크립트가 존재하지 않음
— KansaiRobot

12
using System.Web.Script.Serialization; 

어셈블리에 있습니다 : System.Web.Extensions (System.Web.Extensions.dll)


10

.NET 4 프레임 워크 또는 .NET 4 클라이언트 프로파일을 대상으로합니까?

후자를 타겟팅하는 경우 해당 클래스를 찾을 수 없습니다. 확장명 dll에 대한 참조가 누락되었을 수도 있습니다.


.NET Framework 4. 그리고 이미 프로젝트에 'System.Web.Extensions'가 포함되어 있습니다
— Prisoner ZERO

이전 버전의 .net에서 업그레이드 한 프로젝트입니까?
— Christopher Currens

업그레이드 한 프로젝트 에서이 문제가 발생했습니다. 그래도 원래 .net 버전 (3.5)을 사용하여 해결되지 않는 것 같습니다.
— user1003221

9

위의 답변을 따르고 있지만 여전히 문제가있는 사람 (예 : 포스터 질문에 대한 첫 번째 의견 참조) :

많은 프로젝트가있는 솔루션에서 작업하고있을 것입니다. 작업중인 것으로 보이는 프로젝트는 다른 프로젝트를 참조하지만 실제로 다른 프로젝트 중 하나에서 파일을 수정하고 있습니다. 예를 들면 다음과 같습니다.

  • 프로젝트 A 참조 System.Web.Extensions
  • 프로젝트 A는 프로젝트 B를 참조

그러나 사용하도록 수정하려는 파일이 System.Web.Script.Serialization프로젝트 B에 있으면 System.Web.Extension프로젝트 B에도 참조를 추가해야합니다 .


8

에 대한 참조를 포함 했습니까 System.Web.Extensions? 첫 번째 링크를 클릭하면 링크가 들어있는 어셈블리가 표시됩니다.


이 경우 @Christopher의 답변을 확인하십시오.
— Davy8

5

프로젝트에 참조를 추가해야합니다.

어셈블리에는 System.Web.Extensions가 있습니다.

일단 완료되면 :

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

그것은 나를 위해 일했다.


3

아시다시피, Visual Studio 2013을 사용하고 있으며 프로젝트 속성을 사용하여 3.5 프레임 워크로 전환하고 4.5로 다시 전환 할 때까지 동일한 문제가 발생했습니다. 이것은 어떤 이유로 .dll을 올바르게 등록했으며 System.Web.Extensions 사용할 수 있습니다 .

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


3

Newtonsoft.Json 인 다른 옵션을 사용할 수 있으며 NuGet Package Manager에서 설치할 수 있습니다.

도구 >> Nuget 패키지 관리자 >> 명령을 실행하여 패키지 관리자 콘솔

Install-Package Newtonsoft.Json

또는

도구 >> Nuget Package Manager >> 솔루션 용 NuGet 패키지 관리 ...에서 GUI를 사용하여

여기에 이미지 설명을 입력하십시오


이것은 Microsoft의 문서화 된 권장 사항 입니다. .Net Core에서 Microsoft는 더 이상 JavaScriptSerializer (System.Web.Extensions의 나머지 부분)를 제공하지 않습니다.
— Brian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.