MVC 4 웹 API가 있습니다. 일반적으로 모든 속성을 반환하는 응답을 원하지만 null이 아닌 값만 반환하려는 경우가 있습니다. 전역 파일에서 GlobalConfiguration.Configuration
인스턴스의 Formatters.JsonFormatter.SerializerSettings.NullValueHandling
JsonSerializerSettings를 설정하여 두 동작 중 하나를 설정할 수 있지만 응답에 따라 둘 다 사용하려고합니다. API 컨트롤러 작업 내에서 요청 범위를 구성하는 쉬운 방법이 있습니까?응답마다 JsonSerializerSettings를 설정 하시겠습니까?
0
A
답변
2
컨트롤러 동작을 변경하여 HttpResponseMessage를 반환하면 특정 동작에 대해 콘텐츠가 반환되는 방식을보다 세부적으로 제어 할 수 있습니다. 예 :
public HttpResponseMessage Get() {
var foo = new Foo();
var objectContent = new ObjectContent<Foo>(foo, new JsonFormatter()
{SerializerSettings.NullValueHandling = ???})
return new HttpResponseMessage() {Content = objectContent};
}
0
이것은 javascript와 같은 동적 언어로 클라이언트 측에서 수행하기가 더 쉬울 것입니다.
var keys = Object.keys(json);
for(var i = 0; i < keys.length; i++) {
var propertyName = keys[i];
if(json[propertyName] === undefined || v[propertyName] === null) {
json.remove(propertyName);
}
}
return json;
관련 문제
- 1. HTTPPOST android를 설정 하시겠습니까?
- 2. MessageBox의 위치를 설정 하시겠습니까?
- 3. msgbox의 제목을 설정 하시겠습니까?
- 4. django-nonrel을 설정 하시겠습니까?
- 5. DataContract에서 기본값을 설정 하시겠습니까?
- 6. WINAPI로 EOF를 설정 하시겠습니까?
- 7. InlineUIContainer의 크기를 설정 하시겠습니까?
- 8. SSL로 보안 설정 하시겠습니까?
- 9. MySQL을 기본값으로 설정 하시겠습니까?
- 10. 내지도에 onDragListener를 설정 하시겠습니까?
- 11. 변수에서 변수를 설정 하시겠습니까?
- 12. javax.mail.MimeMessage에서 이름을 설정 하시겠습니까?
- 13. 프록시를 설정 하시겠습니까?
- 14. PHP : 버퍼를 설정 하시겠습니까?
- 15. imagemagick으로 품질을 설정 하시겠습니까?
- 16. PHP에서 배경색을 설정 하시겠습니까?
- 17. 카테고리를 phpbb3로 설정 하시겠습니까?
- 18. QTCapture에서 해상도를 설정 하시겠습니까?
- 19. Airplay를 수동으로 설정 하시겠습니까?
- 20. PartialView를 HtmlHelper로 설정 하시겠습니까?
- 21. 기능 설정 번호를 0으로 설정 하시겠습니까?
- 22. 배열을 테이블보기로 설정 하시겠습니까? 여기
- 23. Paperclip.options [: swallow_stderr] = false로 설정 하시겠습니까?
- 24. Android ZoomButtonsController 정렬을 설정 하시겠습니까?
- 25. org.apache.commons.io.FileUtils.copyURLToFile에서 시간 초과를 설정 하시겠습니까?
- 26. 서버 출력을 영구적으로 설정 하시겠습니까?
- 27. Android - Roboguice 2.0을 설정 하시겠습니까?
- 28. SDL과 작동하도록 Xcode를 설정 하시겠습니까?
- 29. 이미지 너비를 PHP로 설정 하시겠습니까?
- 30. PHP에서 문자열 배열을 설정 하시겠습니까?
그건 필요하지 않습니다. 이 경우 나는 느린 연결을 통해 많은 양의 데이터를 전송하려고 시도하고있다. – Paul
그 외에도 앞으로 클라이언트에서 쉽게 적용되지 않는 다른 직렬화 옵션을 변경하고 싶다고 상상할 수도 있습니다. – Paul