20

現在、REST 操作から次のようなモデル オブジェクトを返す ASP.NET Web API を使用しています。

プロパティを持つ製品:Name, Id, Description, etc.....

JSONこれをオブジェクトに変換すると、上記のプロパティ名で出力されます。

Web API操作から返されるペイロードを削減するために、JSONオブジェクトのプロパティを変更する方法はありますDescDescription. Model オブジェクトを変更することはできますが、その場合、プロパティ名は意味をなさないでしょう!

4

2 に答える 2

25

これを行う簡単な方法は、データ コントラクトを使用することです。 これは記事ですが、基本的には、モデルに 2 つの注釈が含まれます。また、シリアライズしたくないものを無視することもできます。

[DataContract]
public class Foo {  //Your model class

   [DataMember(Name="bar-none")]  //This also allows you to use chars like '-'
   public string bar {get; set;}

   [IgnoreDataMember]  //Don't serialize this one
   public List<string> fuzz { get; set;}

}
于 2012-06-14T17:25:56.457 に答える
1

asp.net 側でhttp://automapper.org/を使用して、完全なオブジェクトをより軽量なものにマップすることも検討できます。小さなオブジェクトが 1 つまたは 2 つだけの場合はやり過ぎかもしれませんが、たくさんのことを行う場合は、これで時間を節約できます (起動するための無料のオープン ソース)。

于 2012-05-23T23:19:32.427 に答える