.INI ファイルを駆逐したい。
DynamicJson の入手方法。
Visual Studio 2017 を使うのが早い。
- [ツール(T)] - [NuGet パッケージ マネージャー(N)] - [ソリューションの NuGet パッケージマネージャー管理(N)...] - [参照] をクリックする。
- テキストボックスに「dynamicjson」と打鍵して [Enter]キーを押す。
あとは何とかしろ。
使い方。
ソースは GitHub に上げてあるが……。
https://github.com/muzudho/CsharpDynamicJsonBestPractice/tree/master/CsharpDynamicJsonBestPractice
using Codeplex.Data; // DynamicJson はこれ。
using CsharpDynamicJsonBestPractice.Model; // 自分で好きに作れだぜ。
using System.Diagnostics; // Trace とかこれ。
using System.IO; // ファイル読み込みはこれ。
とりあえず こんな感じで ファイルの冒頭で using しろだぜ。
そして。
var json = DynamicJson.Parse(File.ReadAllText("./CsDynamicJsonUsage-config.json"));
テキストファイルを読み込んで Parse すればいい。
あと もう1発。
// 連想配列以外の形は取れるはず。
ConfigModel config = json.Deserialize<ConfigModel>();
連想配列以外の部分は クラスに押し込んでくれる。
ただし、
### ok
public string name { get; set; }
### ignored
public string name;
JSON のキー名と プロパティ名を合わせろだぜ。プロパティーは get set のアクセッサーにしろだぜ。
詳しくはソースを見ろだぜ。
連想配列の読み取り方。
// 連想配列の形になっている dishMap は、Deserialize では取れない。DynamicJson型から直接取る。
foreach (string key in json.dishMap.GetDynamicMemberNames())
{
Trace.WriteLine($"ENTRY {key} is {json.dishMap[key]}.");
}
Parse して取ったオブジェクトを ドット(.)アクセスしたり、インデクサー([])アクセスしたりして
連想配列になっているところは .GetDynamicMemberNames()
でキーを取り出せだぜ。
あとはソースを見て考えろだぜ。
.INI ファイルより便利だろ。
.INI ファイルを駆逐したい。