0

私はios開発が初めてです。これで、サーバーから JSON ファイルを取得できます。

NSDictionary を使用してオブジェクトを取得します。デバッグすると、「名前」、「アドレス」の値を取得できました。

しかし、「おすすめ」オブジェクトからすべての「料理」要素を取得する方法がわかりません。Java 開発では、recommend がオブジェクトであり、「dish」が配列要素であることを知っています。しかし、iosで何が起こるかわかりません。

{
      "results": [
        {
          "name": "ollise",
          "address": "columbia university",
          "geo": [
            {
              "coordinates": 40
            },
            {
              "coordinates": 70
            }
          ],
          "logo": "http:\/\/a0.twimg.com\/profile_images\/3159758591\/1548f0b16181c0ea890c71b3a55653f7_normal.jpeg",
          "recommendation": [
            {
              "dish": "dish1"
            },
            {
              "dish": "dish2"
            }
          ],

        }
      ]
    }

ちなみに、JSONでは「logo」に画像のURLを格納しているのですが、デバッグ時に値が取得できません。特別なフォーマットを使用する必要がありますか?

[Restaurant setname:[Dict objectForKey:@"name"]] // I could get name
[Restaurant setlogo:[Dict objectForKey:@"logo"]]   // I can get nothing!
4

1 に答える 1

2

これはそれを行う方法です

NSDictionary *response = [NSJSONSerialization JSONObjectWithData:yourData options:NSJSONReadingMutableLeaves error:nil];
NSDictionary *results = [[response objectForKey:@"results"] objectAtIndex:0];
NSString *name = [response objectForKey:@"name"];
//... get other objects
NSArray *recommendation = [results objectForKey:@"recommendation"];
NSDictionary *recommendation1 = [recommendation objectAtIndex:0];
NSDictionary *recommendation2 = [recommendation objectAtIndex:1];
NSString *dish = [recommendation1 objectForKey@"dish"];
NSString *dish1 = [recommendation2 objectForKey@"dish"];
[Restaurant setname:name];
NSString *logo = [results objectForKey:@"logo"];
[Restaurant setlogo:logo];

これresultsは、JSON のものと同じ辞書です。{}中括弧 ( )NSDictionaryおよび大括弧 ( []) を含むものはすべて として扱いますNSArraydishは配列要素ではなく、配列要素である辞書のキーです。

于 2013-05-19T01:07:55.493 に答える