【C#】jsonを扱う

C#でjsonを扱う時,皆さんはどのようにしていますか?

大抵の場合はNewtonsoft.Jsonというフレームワークを使っているんじゃないでしょうか.

てことで,今回はこのフレームワークの使い方について簡単に解説していきたいと思います.

モジュールをインストール

なんてことはありません.NuGetで見つけてきてください.

Jsonモデルを記述する

今回の記事では,あらかじめ扱うjsonのモデルがわかっている場合を想定します.色々なパターンをつらつらと列挙していきます.

どうでしょう?これだけ見ればイメージが湧いてきませんか….?要するにjsonモデルがわかっている場合には,それに準じたモデルをそのまま落とし込んでしまえばいいわけです.

シリアライズとデシリアライズ

これに関しては以前、「C#でHTTPリクエスト→JSONレスポンス」という記事で軽く触れましたね.今回の記事ではより詳しく?触れていきたいと思います.

シリアライズ

シリアライズする場合には,JsonConvert.SerializeObjectというメソッドを使用します.見たまんまの通り,引数に与えられたJsonObjectをシリアライズして返してくれるメソッドになります.

ただ,httpリクエストを送るためにはシリアライズしただけではダメで,HttpContent,ひいてはStringContentというものに変換してやらなければいけないわけですね.

こうして初めてjsonをリクエストとかに使うことができます.

デシリアライズ

次に,jsonをリクエストで受け取ったりした場合にそれを扱いやすくするためにjsonモデルに変換してやります.この工程をデシリアライズと呼びます.

デシリアライズをするためにはJsonConvert.DeserializeObjectというメソッドを使用します.これも見たまんまですが,引数に与えられた文字列をJsonObjectとして返してくれます.

このメソッドは,例外を吐くことがない(らしい)ので,変換対象となるモデルにkeyが欠如していてもそのままデシリアライズしてくれるみたいです.なので,いらないkeyを敢えて省くことで効率的にコーディングすることができます.

とまぁこんな感じでしょうか.長々と書いてしまいましたが,言っている事はそんなに難しい事じゃありませんよ

あわせて読みたい

1件の返信

  1. 2019年7月18日

    […] Newtonsoft.jsonの使い方を軽くまとめてみたので、良かったら読んでみてください「C#でjsonを扱う」 […]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です