外部のAPIを利用したい場合に、リクエスト項目やレスポンス項目のモデルクラスを手動で定義するのが面倒だった経験があります。
そういった場合にサンプルのJSONなどがあれば、自動でモデルクラスを出力してくれるWEBツールがあります。それがJSON2CSharpです。
今回はJSON2CSharpを使ってみたいと思います。
JSON2CSharp の使い方
下記URLからアクセスできます。
https://json2csharp.com/
今回は下記のJSON文字列で試してみます。
{
"person": [
{
"name": "penta",
"age": 25
},
{
"name": "ponta",
"age": 40
}
],
"count": 2
}
基本的な使い方は下記の通りです。
1.JSON文字列を左側にコピペする
2.Convertボタンをクリックする
3.出力されたC#のクラスをVisualStudioにコピペする
実際に試してみると、自動でモデルクラスが生成されました。非常に便利ですね。
また、他にも機能があるので見てみましょう。
左下にあるSettingsから、Use JsonPropertyName(.NET Core)にチェックを入れてConvertすると、プロパティにアノテーションを付与して出力してくれます。
出力してみると、アノテーション付きで作成されることが確認できました。JsonPropertyNameは小文字で、プロパティは頭大文字で出力してくれるためありがたいです。
ほかにもいくつか任意で設定が出来るようです。
- Use Pascal Case
- Use Fields
- Generate Immutable Classes
- Use Readonly Lists
今回は項目が少ないため実感が薄いですが、項目が多ければ多いほど利便性が高く感じられるかと思います。業務アプリケーション開発などでは数百項目の連携を行うAPIもよくあるかと思います。そういった場合にサンプルのJSONがあれば一瞬でモデルクラスを自動で出力できるため非常におすすめなツールです。
また、JSONだけでなくXMLにも対応しているようです。
Visual Studio の機能を使う
実はVisual Studioの機能を使っても似たようなことができます。
JSON文字列をクリップボードにコピーした状態で、「編集」>「形式を選択して貼り付け」>「JSONをクラスとして貼り付ける」を選択すると、エディタのフォーカスしている箇所にクラスが自動生成されます。
下記の通り、JSONからクラスが生成されたことが確認できました。
JSON2CSharpではListで出力されたPersonが、こちらでは配列で生成されました。また、アノテーションを付与することはできないので、比較的に利便性は低くなるかと思います。
こちらもJSONだけでなく、XMLにも対応しています。