최신 정보
모든 답변에 감사드립니다. 저는 새 프로젝트를 진행 중이며 마침내이 문제를 해결 한 것 같습니다. 실제로 다음 코드가 원인이 된 것 같습니다.
public static HttpResponseMessage GetHttpSuccessResponse(object response, HttpStatusCode code = HttpStatusCode.OK)
{
return new HttpResponseMessage()
{
StatusCode = code,
Content = response != null ? new JsonContent(response) : null
};
}
다른 곳에 ...
public JsonContent(object obj)
{
var encoded = JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore } );
_value = JObject.Parse(encoded);
Headers.ContentType = new MediaTypeHeaderValue("application/json");
}
WebAPI가 아니라고 가정하고 무해한 JsonContent를 간과했습니다.
이것은 어디에서나 사용됩니다 ... 내가 처음으로 말할 수 있습니까, wtf? 아니면 "왜 이러는거야?"
원래 질문이 이어진다
하나는 이것이 간단한 구성 설정이라고 생각했을 것이지만 지금은 너무 오래되었습니다.
다양한 솔루션과 답변을 살펴 보았습니다.
https://gist.github.com/rdingwall/2012642
최신 WebAPI 버전에 적용되지 않는 것 같습니다 ...
다음은 작동하지 않는 것 같습니다. 속성 이름은 여전히 PascalCased입니다.
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = true;
json.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
Mayank의 답변 : CamelCase JSON WebAPI 하위 개체 (중첩 된 개체, 하위 개체) 는 만족스럽지 않지만 linq2sql을 사용하면서 이러한 속성을 생성 된 코드에 추가해야한다는 것을 깨달을 때까지 실행 가능한 대답처럼 보였습니다.
이 작업을 자동으로 수행하는 방법이 있습니까? 이 '더러운'은 오랫동안 나를 괴롭 혔습니다.
JsonSerializer
. stackoverflow.com/questions/13274625/…