1

jsonマッパー関数(LitJsonを使用)によって作成されたオブジェクトがあります。インデックス付きのプロパティが含まれています。

プロパティを繰り返し処理して、次のように各プロパティ値を取得できます

for(int i = 0; i < jdata.Count;i++) {
    Console.WriteLine(jdata[i]);
} 

各プロパティ名を、プロパティ値ではなく文字列として取得したいと思います。

私が見つけた最も近いものはこれです https://stackoverflow.com/questions/1011109/how-do-you-get-the-name-of-the-property

これが機能する場所

string name = ReflectionUtility.GetPropertyName((Sample2 s) => s.Foo);

しかし、これはそうではありません(インデックス付きのプロパティであるためと思われますか?)

string name = ReflectionUtility.GetPropertyName((Sample2 s) => s[0]);
4

2 に答える 2

2

Keysプロパティにアクセスする前に、JsonDataをIDictionaryにキャストする必要があることがわかりました。

そのようです:

JsonData x = getMyData();//however you're getting your JsonData object
var keys = (x as IDictionary).Keys; // you should probably check for null 
foreach(string s in keys)
   Console.WriteLine("Another key: "+s);
于 2013-01-24T22:30:56.723 に答える
1

ソースコードを見つけました。IDictionaryを実装しているように見えるので、プロパティJsonDataにアクセスできるはずです。Keys

インデクサーは基本的にインデックス引数を取る関数として実装されるため、リフレクションを使用して特定のインデックスに関連付けられた「名前」を取得する方法はありません。

于 2012-06-13T02:43:34.667 に答える