🦙

Json形式からdynamic型への変換

2025/02/03に公開

前書き

最近の作業で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型に変換しているということです。

参考にしたサイト

https://qiita.com/koshian2/items/c7e0fe65a27326edf8d0

Discussion