やりたいこと
何かしらから得たデータをC#上でJSONをネスト化して出力してみました。
環境や使用したライブラリ
- windows 10 64bit
- Visual Studio 2019
- .NET framework 4.7.2
- System.Text.Json
手順
コンソールアプリケーションの作成
動作確認としてコンソールアプリを作成しました。
1.ファイル→新規作成→プロジェクト→コンソールアプリ(.NET Framework)とクリックして新しいプロジェクトつくります。
2.ソリューションエクスプローラーから「参照」を右クリックで「NuGetパッケージの管理」をクリックします。
3.「参照」から「text.json」を検索欄に入れてると、「System.Text.Json」がヒットします。そして、これをインストールします。
これで下準備は完了です。
プログラム
プログラムは下記のようになります。
C#のDictionaryを入れ子にするイメージです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.Json;
namespace sample_json
{
class Program
{
static void Main(string[] args)
{
// 例えば個人データを表すpersonのDictionaryを作成
var person1 = new Dictionary<string, string>()
{
{ "name" ,"John"},
{ "age" ,"12"},
{ "city" ,"Tokyo"},
};
var person2 = new Dictionary<string, string>()
{
{ "name" ,"Ann"},
{ "age" ,"13"},
{ "city" ,"Kyoto"},
};
// groupは個人データをまとめるためのDictionary
var group = new Dictionary<int, Dictionary<string, string>>();
//groupに個人データpersonを追加する
group.Add(1, person1);
group.Add(2, person2);
// Dictionaryをシリアライズ
var jsonstr = JsonSerializer.Serialize(group);
// コンソールに出力
Console.WriteLine("{0}", jsonstr);
Console.ReadKey();
}
}
}
結果
おわりに
Dictionaryを入れ子にして、System.Text.Jsonを使うことでネスト化されたJSONを出力することができました。
他にも良い方法があれば教えてください。