回答編集履歴

2 まちがいだらけ

Tak1wa

Tak1wa score 4392

2015/05/12 19:54  投稿

うーむ、難しい話になってきましたね。
> ・C#で、各要素に構造の違うハッシュテーブルを詰め込む方法
> ・最上位 VALUEにobjectで引き渡す事は出来るが引き渡した後に各要素への値追加の方法がわからない
まずJSONのことはキッパリ忘れますね。
上記をやりたいだけであれば、
Dictionary<string, IDictionary>にしてやれば詰め込めます。
ただし再帰的にDictionaryまたはValueとして扱いたいのでしょうから、
以下のようにDictionary自体を作成して、object型の部分をカスタムクラス内で吸収してやれば実装自体は出来る気がしてます。
```lang-C#
public class DictionaryEx : Dictionary<string, object>, IDictionary<string, DictionaryEx>, IDictionary<string, string>
```
↑頓珍漢なこと言ってました。試してみましたがダメっぽかったです。
---
ここからJSONを前提とした話にちょっと戻ります(お気に障ったらすみません)
> 質問内容に記載したデータをどのようにシリアライズするかどうかはわかっています。
私が勘違いしていたら申し訳ないのですが、皆さんが仰っているのでは逆の話で、
クライアントから受け取ったJSON文字列を、ASP.NET側でフレームワークを用いてデシリアライズしてやれば、
> Dictionary型をネストするぐらいなら通常はクラス自体をネストします。
とするだけで簡単に出来るしスマートだし変更にも強いよ、と言っているのだと思います。
質問文の最初に
```lang-C#
foreach( string ListKey in KeyList )
```
とありましたが、ひょっとしてループでぐるぐるとJSON⇔POCOの変換をかけようとしていませんか?
とありましたが、ひょっとしてループでぐるぐるとJSON⇔POCOの変換をかけようとしていませんか?
↑ これも私の検討違いかも…。質問者さんはデシリアライズのことについては触れてませんでしたね。
本回答は無視してください。失礼しました。
1 回答あやまり

Tak1wa

Tak1wa score 4392

2015/05/12 19:44  投稿

うーむ、難しい話になってきましたね。
> ・C#で、各要素に構造の違うハッシュテーブルを詰め込む方法
> ・最上位 VALUEにobjectで引き渡す事は出来るが引き渡した後に各要素への値追加の方法がわからない
まずJSONのことはキッパリ忘れますね。
上記をやりたいだけであれば、
Dictionary<string, IDictionary>にしてやれば詰め込めます。
ただし再帰的にDictionaryまたはValueとして扱いたいのでしょうから、
以下のようにDictionary自体を作成して、object型の部分をカスタムクラス内で吸収してやれば実装自体は出来る気がしてます。
```lang-C#
public class DictionaryEx : Dictionary<string, object>, IDictionary<string, DictionaryEx>, IDictionary<string, string>
```
↑頓珍漢なこと言ってました。試してみましたがダメっぽかったです。  
---
ここからJSONを前提とした話にちょっと戻ります(お気に障ったらすみません)
> 質問内容に記載したデータをどのようにシリアライズするかどうかはわかっています。
私が勘違いしていたら申し訳ないのですが、皆さんが仰っているのでは逆の話で、
クライアントから受け取ったJSON文字列を、ASP.NET側でフレームワークを用いてデシリアライズしてやれば、
> Dictionary型をネストするぐらいなら通常はクラス自体をネストします。
とするだけで簡単に出来るしスマートだし変更にも強いよ、と言っているのだと思います。
質問文の最初に
```lang-C#
foreach( string ListKey in KeyList )
```
とありましたが、ひょっとしてループでぐるぐるとJSON⇔POCOの変換をかけようとしていませんか?

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る