1

多くの配列とオブジェクトを使用するjsonを解析しようとしています。解析方法。

[
    {
        "MusicData": [
            {
                "user_music_id": "199",
                "music_id": "2",
                "music_name": "Country"
            },
            {
                "user_music_id": "200",
                "music_id": "2",
                "music_name": "Country"
            }
        ]
    },
    {
        "SportData": [
            {
                "user_sport_id": "179",
                "sport_id": "4",
                "sport_name": "Hockey"
            }
        ]
    },
    {
        "HobbyData": []
    },
    {
        "RelationData": []
    },
    {
        "MovieData": [
            {
                "user_movie_id": "144",
                "movie_id": "6",
                "movie_name": "Drama"
            }
        ]
    },
    {
        "BookData": []
    },
    {
        "CarrerData": [
            {
                "user_carrer_id": "186",
                "carrer_id": "7",
                "carrer_name": "Marketing"
            },
            {
                "user_carrer_id": "187",
                "carrer_id": "8",
                "carrer_name": "Sales"
            }
        ]
    }
]

MyMusicは辞書であり、多くのインデックスを持つ配列があります。

データを1つずつ解析する方法は?MyMusic、SportDataなどのラベルを使用します。

次のコードを使用して、このjsonからCarrerDataを解析しようとしています。

musicTemp._id = [NSString stringWithFormat:@"%@",[[[responseDict objectAtIndex:0] valueForKey:@"MusicData"] valueForKey:@"user_music_id"]];
4

1 に答える 1

1

配列をスキップしているようです。次のコマンドを試してください。

musicTemp._id = [NSString stringWithFormat:@"%@",[[[[responseDict objectAtIndex:0] valueForKey:@"MusicData"] objectAtIndex:0] valueForKey:@"user_music_id"]];`

{}」は辞書を表し
ます「[]」は配列を表します

したがって、実行できるオブジェクトを反復処理するには、次のようにします。

 NSArray* array=[[responseDict objectAtIndex:0] valueForKey:@"MusicData"]; 
   for (NSDictionary *dict in array) {
        NSString *userMusicID=[dict objectForKey:@"user_music_id"];
        NSString *musicID=[dict objectForKey:@"music_id"];
        //etc 
    }

他の要素でも同じことができます。

于 2012-11-28T15:17:10.877 に答える