.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.