2009-08-30 16 views
18

私は現在asp.net mvcを使用しており、組み込みのJsonまたは Json.Netを使用してより良い選択ができたのか疑問に思っています。Asp.net MVC jsonまたはJson.net?

また、私がJson.Netのルートをダウンすることを選択した場合は、安定版またはベータ4を使用する必要がありますか?私はベータがどれほど不安定であるかわからない。

答えて

10

問題がある可能性がありますserializing dates with the MVC JSON.その投稿への私の答えは以下のとおりです。

MS JSONシリアライザに縛られていない場合は、Json.NETを使用できます。 IsoDateTimeConverterが付属しています。 これは、日付をISO 8601形式の文字列にシリアル化します。

たとえば、 のプロジェクトでは、myObjectのシリアル化は のコードで処理されます。

JsonNetResult jsonNetResult = new JsonNetResult(); 
jsonNetResult.Formatting = Formatting.Indented; 
jsonNetResult.SerializerSettings.Converters.Add(new IsoDateTimeConverter()); 
jsonNetResult.Data = myObject; 

あなたはまた、それが ASP.NET MVCアプリケーションで使用することができます のActionResultを返すよう JsonNetResultをつかむしたいと思うJson.NET 思い切ってすることを決定した場合。それはかなり使いやすい です。詳細情報については

は、以下を参照してください。私たちは現在、Json.NETのV3.5ベータ4を使用していて、問題が発生していないGood (Date)Times with Json.NET

。しかし、まだ生産に入っていないため、実際には課税されていません。あなたの走行距離は、使用しているフレームワークの量によって異なります。

これが役に立ちます。

6

私の考えは、Jsonで焼いたときに何の問題も見つけられていないということです。私はあなたがうまくいかないものが見つかるまで、そのことをお勧めします。より少ない依存関係がより簡単なデバッグを可能にします。

+1

完全に同意します。 Json.netは本当に素晴らしいライブラリですが、.NETオプション以外の機能が必要な場合を除いて、管理する必要のある不要な依存性だけが必要です。 – jswanson

1

これまでは、クラスのメンバーがシリアル化されていることを示すopt-inまたはopt-outメソッドを使用した.NET JSONライブラリを使用していました。 NerdDinnerサンプルアプリケーションを見直すと、SearchControllerにあるJsonDinnerというクラスがあります.JsonDinnerは通常のDinnerクラスのようですが、実際にはモデル関連のものではなく、関連するビューのみであると思われるいくつかの詳細を出力します特徴。この単純なケースでは、JSONにシリアライズされるピースを識別する、モデル上の属性記法メカニズムにより、手持ちコードの量が減少します。

関連する問題