0

配列内に配列を持つ単純なjson形式がありますが、内部配列を取得する方法がわかりません。NSArray「通勤」タグをまたはとして取得するにはどうすればよいNSDictionaryですか?

これが私のjsonです:

{
    "Language": "EN",
    "Place": [
        {
            "City": "Stockholm",
            "Name": "Slussen",
            "Commute": [
                "Subway",
                "Bus"
            ]
        },
        {
            "City": "Gothenburg",
            "Name": "Central station",
            "Commute": [
                "Train",
                "Bus"
            ]
        }
    ]
}

これが私のコードです:

NSString *textPath = [[NSBundle mainBundle] pathForResource:@"Places" ofType:@"json"];

NSError *error;
NSString *content = [NSString stringWithContentsOfFile:textPath encoding:NSUTF8StringEncoding error:&error];  //error checking omitted

NSData *jsonData = [content dataUsingEncoding:NSUTF8StringEncoding];

NSDictionary* json = [NSJSONSerialization
                      JSONObjectWithData:jsonData
                      options:kNilOptions
                      error:&error];

NSArray* AllPlaces = [json objectForKey:@"Place"];

for(int n = 0; n < [AllPlaces count]; n++)
{
    PlaceItem* item     = [[PlaceItem alloc]init];
    NSDictionary* place = [AllPlaces objectAtIndex:n];
    item.City           = [place objectForKey:@"City"];
    item.Name           = [place objectForKey:@"Name"];

    NSDictionary* commutes = [json objectForKey:@"Commute"];

    [self.placeArray addObject:(item)];
}
4

4 に答える 4

2

コードは次のようになります。

NSArray* commutes = [place objectForKey:@"Commute"];

Thwt は、"Subway"andを保持する配列を返し"Bus"ます。

于 2013-02-18T19:29:57.077 に答える
2

問題はへのアクセスだと思いますが、代わりに次のjsonようにする必要があります。place

NSArray* commutes = [place objectForKey:@"Commute"];
于 2013-02-18T19:33:13.100 に答える
2
NSArray *commutes = [place objectForKey:@"Commute"];

これによりNSArray、「地下鉄」と「バス」が表示されます。

于 2013-02-18T19:33:25.770 に答える