-3

これはjsonの応答です。どうすれば解析できますか?

[{"id": "35"、 "name": "Jalsa"}]

[{"id": "32"、 "name": "Nand​​hini"}]

4

3 に答える 3

3

と呼ばれるリンゴからのクラスがあります

NSJSONシリアル化

次の方法を使用して、jsonデータを解析できます

+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error

詳細については、アップルのドキュメントを参照してください:http: //developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html

編集:

どうやってリクエストするのかわかりません。NSURLConnection

_recievedDataを

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

方法

そして、あなたはこのようにあなたの配列を得ることができます

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
   NSArray *recivedArray = [NSJSONSerialization JSONObjectWithData:_receivedData options:0 error:nil];
}

データの受信方法についてさらにヘルプが必要な場合は、ここで例を見つけることができますhttps://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html

于 2012-08-08T08:45:42.590 に答える
1

式が "[" "]" の間にある場合はNSArrayを使用します。式が "{" "}" 内にある場合はNSDictionary
を使用します。

この場合、json は 2 つの辞書を含む配列です。各ディクショナリには 2 つのキーと値のペアが含まれています。

 NSError *e = nil;
 NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: data options: 
 NSJSONReadingMutableContainers error: &e];
 if (e!=nil) {
     // Handle error
     return;
 }
 for (NSDictionary *dict in jsonArray)
 {        
     NSString *theID = [dict objectForKey:@"id"];
     NSLog(@"ID:%@" , theID);

     NSString *name = [dict objectForKey:@"name"];
     NSLog(@"Name: %@" , name);
 }
于 2012-08-08T08:52:14.907 に答える
0

NSJSONSerializationはiOS5.x以降でのみ使用可能であるため、iOS 4.xをサポートする必要がある場合は、JSONKitを使用できます。

JSONKitも素晴らしいパフォーマンスを発揮します。GitHubのプロジェクトページで比較を確認してください。

于 2012-08-08T08:47:46.840 に答える