【C#】不定形JSONを扱う

ごあいさつ

皆さん、こんにちは。ぶんじゃくです。

秋を感じつつも、季節の変わり目か体調がいまいち決まらない、そんな私です。

さて、今回はC#で不定形JSONを扱うことについてお話したいと思います。

System.Text.Json

これはMicrosoft公式が用意しているライブラリなのですが、先に展開するためのクラスを準備する必要があります。

つまり、基本JSONを展開するときにそのオブジェクトの型は決まっていなければいけません。


using System.Text.Json;

~中略~

// JSON文字列
string strJson = json;

// デシリアライズ
ClassJson classJson = JsonSerializer.Deserialize<ClassJson>(strJson);

でもこれだと、jsonの中身が不定形だった場合に、デシリアライズできずに落ちてしまうわけです。

jsonの中身が何であっても、PHPみたいにとにかくarrayみたいに使えるようにしてほしい。

というわけでJObjectというものの出番です。

JObject

まずはNuGet等でNewtonSoft Json.NETをインストールしておきます。

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

~中略~

// JSON文字列
string strJson = json;

// デシリアライズ
JObject jobj = JObject.Parse(strJson);

var value = jobj["key"];
var value2 = jobj["key"]["key2"];

あとは実際に使ってみてください。

それと「C# JObject」なんかで検索すると応用的な使い方も出てきます。(笑)

不定形JSONを扱うものは他にもあるようですが、個人的にはJObjectがオススメです。

C#でJSONを扱う際のとっかかりになれば幸いです。

それでは今回はこの辺で。

さようなら。