1

JSON高レベルのデータをフォーマットで返すAPIを呼び出しています。NSDictionaryその後、これは同様に処理されます。

NSDictionary *results = [NSJSONSerialization JSONObjectWithData:JSONData options:kNilOptions error:&error];

これをログに記録すると、次のような非常に複雑な結果になる可能性があります。

{
 one = {
         oneone = 12345;
         onetwo = "Hello";
         onethree = "How Are You";
       };
 two = 42;
 three = {
           threeone = {
                        threeoneone = "Name";
                        threeonetwo = {
                                          threeonetwoone = "100";
                                          threeonetwotwo = "26";
                                       };
etc etc etc

今、私は呼び出すことによって「three」の内容を[results objectForKey:@"three"]取得しますが、「threeonetwoone」の値を取得するにはどうすればよいですか?

私はいくつかのことを試みましたが、役に立ちませんでした。

4

3 に答える 3

5

このようなものを使用してください...コンパイラで確認してください

よくわかりませんが、正しい辞書について言及しているかどうかにかかわらず、すべてのキーが正しいはずです。

[results valueForKeyPath:@"three.threeone.threeonetwo.threeonetwoone"];
于 2013-01-10T13:08:12.720 に答える
2

Objective-C 構文の最近の変更により、次のように実行できます。

results[@"three"][@"threeone"][@"threeonetwo"][@"threeonetwoone"];
于 2013-01-10T13:11:23.240 に答える
1

あなたの場合:

NSString* threeoneone= dict[@"three"][@"threeone"][@"threeonetoone"]; 
于 2013-01-10T13:14:30.387 に答える