らびたろちゃんにっきスマートフォン用の表示で見るらびたろちゃんにっきこの広告は、90日以上更新していないブログに表示しています。NancyFx1年以上ぶりにNancyFxネタ。日本語の情報があまりないので、色々書いて行こうと思います。ユーザが増えてくれれば嬉しいですね。NancyFxでは、デフォルトでJsonレスポンスを返すことが出来ます。Response.AsJson(data);};ブラウザからこのURLにアクセスすると、以下のようなJsonが返ります。"http://rabitarochan.hatenablog.com/"}よくよく見てみると、キーがC#のプロパティ名と同じUpperCamelCaseとなっていますね。そのため、JavaScript側でも同じくUpperCamelCaseで扱う必要があります。JavaScriptではほとんどの場合、lowerCamelCaseが使われていると思いますので、JavaScript側がちょっと気持ち悪い感じになってしまいます。できればNancyFxからJsonを返す際に、キーをlowerCamelCaseに変換してくれればベストです。NancyFxのソースを読んでみましたが、残念ながらキーとなる文字列を変換するオプション等はありませんでした。(ちなみに、NancyFxは独自のJsonシリアライザを使っています。)そこでNancy.Serialization.JsonNetの出番です!リポジトリはこちら。NuGetからもインストール可能です。https://github.com/NancyFx/Nancy.Serialization.JsonNetこのライブラリは、Jsonレスポンスを返す際のシリアライザとして、C#からJsonを扱う際に一番使われていると思われるライブラリJson.Netを使うように変更してくれるだけのものです。設定はとても簡単で、シリアライザを継承したクラスを1つ作成することと、それをDIコンテナに登録することだけです。シリアライザを継承したクラスを作成するJson.Net用のシリアライザを継承したクラスを作成します。今回と同じ目的の場合は、以下のコードをコピペでOKです。詳細については、Json.Netのドキュメントを参照してください。}}DIコンテナに登録するBootstrapperクラスにて、DIコンテナのTinyIocに先ほど作成したクラスを登録します。}}仕組みNancy.Serialization.JsonNetは、JsonのシリアライザとしてJson.Netを利用するように変更してくれるプラグインのようなものです。NancyFxでは、コンテントタイプ毎に任意のシリアライザが登録できる仕組みになっているようです。(その仕組みまではまだ見ていません。)デフォルトではJson.NetのJsonSerializerをそのまま使用しますが、BootStrapperクラスにて今回作成したようなクラスを登録してあげることで、そちらのクラスが使用される、ということです。最初に書いたソースはそのままで同じURLにアクセスすると、ちゃんとlowerCamelCaseに変換されていることが分かります。"http://rabitarochan.hatenablog.com/"}デシリアライズは??PostされたJsonをC#のクラスに変換する場合は、UpperCamelCase、lowerCamelCase関係なく変換してくれます。変換には、NancyFxが提供しているModelBindingという仕組みを利用します。以下の例では、フォームからPostされたパラメータをクラスに変換し、そのままJsonレスポンスとして返しています。クラスに変換するための拡張メソッド用。}}まとめこのライブラリを利用することで、C#とJavaScriptのプロパティ名の違いがほぼ吸収できると思います。NancyFxでWebAPIを作成するときは、ぜひこのライブラリを利用してみてください。18:21NancyFxでWebAPIを作るときに必ず参照すべきライブラリTweet広告を非表示にする関連記事2015-12-22Kotlinのプロパティをタイプセーフに取得するおはようございます。2013の8日目の記事です。2013の3日目の記事です。2013の2日目の記事です。(1)月別アーカイブリンクヘルプはてなブログお知らせはてなブログをはじめよう!rabitarochanさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。