iOS 5 json - 深入json字符串?

时间:2011-12-22 09:45:32

标签: xcode json sdk ios5

使用iOS 5,您可以使用本机json支持。 我尝试了很多东西,但我无法解析以下内容: http://api.audioboo.fm/users/40956/audio_clips.json

我的目标是获取每个audio_clip以及id's等等。

我为简单的json字符串尝试的是:

     NSDictionary* json = [NSJSONSerialization 
                      JSONObjectWithData:responseData //1

                      options:kNilOptions 
                      error:&error];


     latestBoo = [json objectForKey:@"audio_clips"];

但是这个复杂的json字符串我不知道如何获取这些信息。

希望得到答案:)

3 个答案:

答案 0 :(得分:2)

NSDictionary *parsedData = [NSJSONSerialization 
                  JSONObjectWithData:responseData //1

                  options:kNilOptions 
                  error:&error];

// Response Data is the JSON String...

NSLog(@"Parsed Data: %@", parsedData);

NSDictionary *bodyDictionary = [parsedData valueForKey:@"body"];

NSLog(@"bodyDictionary: %@", bodyDictionary);

NSArray *audioClipsArray = [bodyDictionary valueForKey:@"audio_clips"];

NSLog(@"Response array: %@", audioClipsArray);

在audioClipsArray中,现在是包含音频剪辑所有元素的数组。

答案 1 :(得分:0)

您的JSON的根包含body,其中包含audio_clips。所以你应该做

NSArray *audioClips = [(NSDictionary *)[json objectForKey:@"body"] objectForKey:@"audio_clips"];

然后你可以迭代audioClips数组。

答案 2 :(得分:0)

我无法为您提供任何iOS代码,但因此无法提供java样式的伪代码片段来访问这些信息:

// serialize string into json object
JSONObject json = serialize(responseData);


// request member "body" as json object
JSONObject body = json.getAsJsonObject("body");

// request member "audio_clips" as json array
JSONArray audio_clips = body.getAsJsonArray("audio_clips"); 

// iterate over json array
for(JSONObject audio_clip : audio_clips) {
     // access members of audio_clip, e.g. id
     int id = audio_clip.getInt("id");
}
希望这会有所帮助 -axel