🦙
Json形式からdynamic型への変換
前書き
最近の作業でJson形式からdynamic型へデータを変換する必要がありました。今後同様のことが起こる可能性は低いと思いますが、備忘録として残しておこうと思います。
本題
最近の作業でS3から取得したバイナリデータをJson形式にした後、dynamic型へ変換する必要がありました。本当にできるの?と疑心暗鬼だったので、確認用に作成したサンプルコードを自分用に残しておきます。
バイナリデータ→Json形式→dynamic型
の一連流れで確認したかったので少々見づらいかもしれません。
using Newtonsoft.Json.Linq;
using System.Text;
//Json形式の文字列
string json = "{ \"name\":\"John\" }";
//バイナリデータに変換
byte[] byteData = Encoding.UTF8.GetBytes(json);
//再度文字列に変換
string jsonText = Encoding.UTF8.GetString(byteData);
//dynamic型に変換
dynamic result = JObject.Parse(jsonText);
Console.WriteLine(result);
//出力結果
//{
// "name": "John"
//}
軽い説明
using Newtonsoft.Json.Linqを記述してOSS(オープンソースライブラリ)を使用しています。
このライブラリのJObject.Parseを使用してJson形式からdynamic型に変換しているということです。
参考にしたサイト
Discussion