2009-08-30 5 views
18

지금 asp.net mvc를 사용하고 있으며 Json 또는 Json.Net에 내장 된 것을 사용하는 것이 더 나은 선택인지 궁금합니다. 다른 것에 비해 이점이 있는지 확실하지 않습니다.Asp.net MVC json 또는 Json.net?

또한 Json.Net의 경로를 선택하는 경우 안정 버전 또는 베타 4를 사용해야합니까? 나는 베타가 얼마나 불안정한지는 모르겠다.

답변

10

당신은 문제가있을 수도 있습니다 serializing dates with the MVC JSON. 그 게시물에 대한 내 대답은 아래에 반복됩니다.

MS JSON 시리얼 라이저에 묶여 있지 않다면 Json.NET을 사용할 수 있습니다. 그것은 IsoDateTimeConverter와 함께 제공됩니다. 그러면 날짜가 ISO 8601 형식의 문자열로 serialize됩니다.

예를 들어 프로젝트에서 myObject를 serialize하는 것은 코드를 통해 처리됩니다.

JsonNetResult jsonNetResult = new JsonNetResult(); 
jsonNetResult.Formatting = Formatting.Indented; 
jsonNetResult.SerializerSettings.Converters.Add(new IsoDateTimeConverter()); 
jsonNetResult.Data = myObject; 

당신이 Json.NET 을하기로 결정하는 경우

는 또한 ASP.NET MVC 응용 프로그램에서 사용할 수있는 ActionResult를 반환으로 JsonNetResult을 잡고 싶을 것이다 급락. 그것은 사용하기 쉬운 꽤 이야. 더 많은 정보를 들어

볼 : 우리는 현재 Json.NET의 V3.5 베타 4를 사용하고 문제가 발생하지 않은 Good (Date)Times with Json.NET

. 그러나 아직 생산에 들어 가지 않았기 때문에 실제로 시스템에 과세하지 않았습니다. 사용하는 프레임 워크의 양에 따라 마일리지가 달라질 수 있습니다.

희망이 도움이됩니다.

6

제 생각에 Json에서 구운 요리에 문제가 없습니다. 나는 당신이 작동하지 않는 것을 찾을 때까지 그걸로 갈 것을 제안 할 것입니다. 의존성이 줄어들면 디버깅이 간단 해집니다.

+1

모두 동의합니다. Json.net은 정말 멋진 라이브러리이지만 .NET 옵션 밖에있는 기능을 필요로하지 않는 한 관리해야하는 불필요한 종속성 만 있습니다. – jswanson

1

이전에는 클래스의 멤버가 직렬화되어 있음을 나타내는 opt-in 또는 opt-out 메서드를 사용하는 .NET JSON 라이브러리를 사용했습니다. NerdDinner 샘플 응용 프로그램을 검토 할 때 SearchController 클래스 인 JsonDinner는 일반 Dinner 클래스처럼 보이지만 실제로는 관련이있는 뷰와 관련이있는 것으로 간주 될 수있는 몇 가지 추가 세부 정보 만 출력하는 것처럼 보입니다 풍모. 이 간단한 경우, 모델의 속성 표기법을 사용하여 JSON에 직렬화 할 부분을 식별하면 손으로 유지 관리되는 코드가 줄어 듭니다.