2010-02-12 2 views
5

저는 ASP.Net MVC 프로젝트에서 일하고 있으며 JSON 오브젝트로 몇 가지 작은 트릭을 배웠습니다. 예를 들어, jQuery에서 $ .getJSON()을 호출 할 때 실제로 JSON이 문자열 값이 아닌 객체를 반환하는지 확인해야합니다 (글쎄, 아 ~ 맞습니까?).Json 응답으로 작업 할 때 중요한 점은 무엇입니까?

JSON 객체로 작업 할 때주의해야 할 주요 사항은 무엇입니까? 나는 특히 ASP.Net에 관심이 있지만 모든 언어가 될 수 있습니다.

답변

3

WCF 프로젝트 내에서 .Net serialization을 사용하여 다른 서비스에 대한 JSon 응답을 생성 할 때 나를 괴롭힌 하나의 불쾌한 json 버그가 발생했습니다. 그것은 온라인 검증 자에 따르면 완벽하게 합법적 인 JSon이지만 수신자는 그것을 삼키지 않을 것입니다.

내용의 순서가 중요하다는 것이 밝혀졌습니다. JSon 사양에 따르면 순서는 중요하지 않지만 분명히 다른 끝에있는 소비자는 맨 위에 특정 필드를 찾지 못했을 때 숨 막히지 않는 맞춤 구문 분석기를 사용했습니다. serializer는 내용을 알파벳 순서로 넣습니다.

필자는 serializer에 데이터 계약을 통해 명시적인 순서를 지정할 수 있음을 알게 될 때까지 약간의 시간을 보냈다. 문제 해결됨.

예 :

[DataMember(Order = 1)] //<-- thank Zod this exists! 
public List<Foo> MyFoos { get; set; } 

는 JSON 응답의 상단에 배열 'MyFoos'을 둔다.

참고 : 이렇게하는 경우 주문 번호가없는 데이터 멤버가 여전히 맨 위에 플로트되므로 각 데이터 멤버에게 주문을 제공해야합니다.

1

줄 바꿈 또는 새 줄을 보내지 마십시오. 또한 문자가 도주하기 때문에. .NET Json 검색기를 사용하는 경우 이러한 사항을 처리해야하지만 직접 처리해야하는 경우주의해야합니다.

또한 때로는 문자열이 선행 공백과 함께 보내지거나 검색된다는 것을 알아 차렸으므로 .trim()을 호출해야합니다.

관련 문제