2016-03-23 10 views
0

私はしばらくの間、.Net 4.xからいくつかのシリアライザを使用していました。私はちょうどその時代のシリアライザのほとんどが一般的なC#ディクショナリのシリアライズとデシリアライズができないことに気付きました。私は今、リファクタリングしていたコードでC#の辞書を扱えるJSONシリアライザ<TKey,T>

、私が代わりに辞書<文字列のT >一覧<をストリーミングのような回避策を参照してください、私は周りの仕事を考えるとOの回避を望んT >(むしろ建てを使用シリアライザの機能)。

お気に入りのJSONシリアライザのステータスはどうですか?

また、シリアライザがJSON APIに準拠しているかどうかご存知ですか? (JSONAPI.org)

+0

[C#で辞書をJSON文字列に変換するにはどうすればいいですか?](http://stackoverflow.com/questions/5597349/how-do-i-convert-a-dictionary-to-a- json-string-in-c) –

+0

ディクショナリで 'ToList()'を使って 'List >' –

+0

に変身します。シリアライザがこのように何かをやっていないならば、それはおそらく公正な回避策です。この質問は、実際にディクショナリのシリアル化をサポートするシリアライザの経験についてのものです。そして:XMLをシリアライズするときにこのテクニックをたくさん使いましたが、出力ファイルで生成されたKeyValuePairの「混乱」のために、あまり好きではありませんでした。 JSONとは違います。試すだけの価値があります。再度、感謝します。 –

答えて

0

http://www.newtonsoft.com/jsonは私が一番使ったものです。より速くて非常に柔軟なものの1つ。これは、asp.net MVC/WebAPIで使用されるデフォルトのシリアライザです

https://github.com/kevin-montrose/JilはStackOverflowで使用され、は非常にです。

Jsonapiは、より高いレベルの関心事です。 jsonがどのようにde/serializeされるかは変わりません。シェイプ/フォーマットがデータを返すための単なるパターン、慣習、標準、スキーマです。どのシリアライザを選択するかはあまりありません。シンプルなDTOに、

は、多くの場合、私の複雑なオブジェクトを変換した方がよい:異なるシリアライザの経験やコレクション型のすべての並べ替えに対処するためにそれらを取得しようとしているの多くの年後

+0

私はJilを指してくれてありがとう。面白そうに見えますし、現在のプロジェクトでは私にとってはうってつけかもしれません。 –

+0

Jsonapi:はい、そうです。それは、参照/関係の保存/処理方法、そしていくつかの方法についての慣習によってさらに進んでいるようです。 Ember用の標準JSON APIアダプタを使ってWebService Layerを動作させる方法を確認してください。 –

0

は、私は結論になってきました(データ転送オブジェクト)には、単純なパブリックプロパティ(またはフィールド)と、すべての「コレクション」の配列が含まれています。そして、すべてのシリアライザは、私がまだ知らないシリアライザを含めて対処できますが、来年に移植する必要があります。

言い換えれば、コードをもっと書くことができますが、少なくとも私は自分の睡眠で書くことができるコードです! Automapperは、DTOを作成するのに必要なカスタムコードの量を減らすのにも役立ちます。

+0

あなたのコメントありがとう、イアン。 おそらく、少し哲学的で、使い方が似ています。永続化したいすべての内部クラスのDTOレイヤーは魅力的です。 C#クラスがXMLにシリアル化されているので、私はこのアプローチのファンでした。現在、私はC#クラスをそのまま使用する方が有利です。クライアント側でもJavaScript側でも使用できます。 –

関連する問題