Key
問題は、文字列を名前空間であるかのように構築することです。これを再帰で行うのが私の現在の実装ですが、まだ見つけられていないスタックフレンドリーなオプション (LINQ? Iterative?) が他にもあると確信しています。ほとんどすべての例は単純すぎて、キー階層に基づいてそれらを「名前空間」にする機能を考慮していません。
これは私の辞書のレイアウトの簡単な例です。うまくいけば、これは理解するのに十分簡単です-私は徹底的にしたかった.
JSON を次のように変換します (ネットワーク経由でデータを保存するためにネストされています)。
"entity": {
"foo": {
"bar": {
"baz": {
"2": "description",
"1": "title"
}
}
にDictionary<string,object>
。の場合Value is string
、それが「名前空間」の終わりです。このオブジェクトの詳細で紛らわしい外観:
[0] {[entity, Dictionary[String,Object]]} KeyValuePair<string,object>
Key "entity" string
Value Count = 1 object {Dictionary<string,object>}
[0] {[foo, Dictionary[String,Object]]} KeyValuePair<string,object>
Key "foo" string
Value Count = 12 object {Dictionary<string,object>}
[0] {[bar, Dictionary[String,Object]]} KeyValuePair<string,object>
Key "bar" string
Value Count = 1 object {Dictionary<string,object>}
[0] {[baz, Dictionary[String,Object]]} KeyValuePair<string,object>
Key "baz" string
Value Count = 3 object {Dictionary<string,object>}
[0] {[3, title]} KeyValuePair<string,object>
Key "3" string
Value "title" object {string}
これKeyValuePair
は最終的に次のようになります。"entity.foo.bar.baz.title.3", "3"