更新
すべての回答をありがとう。私は新しいプロジェクトに参加していて、ようやくこれの最後に到達したようです。次のコードが実際に原因であるように見えます。
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");
}
私は、無害に見えるJsonContentをWebAPIであると想定して見落としていたが、そうではなかった。
これはどこでも使われています...最初に言ってもいいですか、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/...