[解決済み] Web API 2: オブジェクトとそのサブオブジェクトのプロパティ名を camelCase した JSON を返す方法
2022-10-06 23:05:09
質問
アップデイト
すべての回答ありがとうございました。私は新しいプロジェクトに参加しており、最終的にこの問題の真相を突き止めたようです。実際、次のコードが原因だったようです。
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だと思い込んで見落としていましたが、そうではありませんでした。
これは、使用されている どこでも ... 最初に言っておきますが、これは何ですか? というか、「なぜこんなことをするのか」と言うべきでしょう。
元の質問は次のとおりです。
これは簡単なコンフィグ設定だと思ったのですが、あまりにも長い間、私を取り逃がしていました。
私はさまざまな解決策と答えを見ました。
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();
マヤンクの回答はこちら CamelCase JSON WebAPIサブオブジェクト(ネストされたオブジェクト、子オブジェクト) は、満足できないが実行可能な答えのように思えたが、私たちが linq2sql を使用しているため、これらの属性を生成コードに追加しなければならないことに気づくまでは、そうではなかった...。
これを自動的に行う方法はありますか? この「厄介な」方法は、これまで長い間私を悩ませてきました。
どのように解決するのですか?
すべてを合わせると...
protected void Application_Start()
{
HttpConfiguration config = GlobalConfiguration.Configuration;
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
config.Formatters.JsonFormatter.UseDataContractJsonSerializer = false;
}
関連
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み] Chromeを使用してASP.NET Web APIがXMLの代わりにJSONを返すようにするにはどうすればよいですか?
-
[解決済み] LINQを使用して、プロパティ値の最小または最大値を持つオブジェクトを選択する方法
-
[解決済み] Json.netでシリアライズする際、プロパティ名を変更するにはどうすればよいですか?
-
[解決済み] ASP.NET Web APIでエラーを返すためのベストプラクティス
-
[解決済み] 既存のASP.NET MVC 4 WebアプリケーションのプロジェクトにWeb APIを追加するにはどうすればよいですか?
-
[解決済み] Web API メソッドに json の POST データをオブジェクトとして渡すにはどうすればよいですか?
-
[解決済み】Web APIからHttpClientでJsonObjectをPOSTする。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み】ここで「要求URIに一致するHTTPリソースが見つかりませんでした」となるのはなぜですか?
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み] [Solved] 不正な文字列値: '\xEFxBFxBD' for column
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015