0

JSON応答のような-{"response":{"Success": "Y"、 "items":[{"userid": "255"}]}}

私はこのように解析しようとしました:

-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{

    NSString *jsonStr = [[NSString alloc] initWithData:mutaebleData encoding:NSUTF8StringEncoding];
    NSLog(@"JSonSTr : %@", jsonStr);
    
    SBJSON *json = [[SBJSON alloc]init];
    
    NSDictionary *dic = (NSDictionary *) [json objectWithString:jsonStr];
    NSDictionary *dic1 = (NSDictionary *) [dic objectForKey:@"response"];
    NSDictionary *dic2 = (NSDictionary *) [dic1 objectForKey:@"Success"];
    NSDictionary *dic3 = (NSDictionary *) [dic1 objectForKey:@"items"];

    NSDictionary *dic4 = (NSDictionary *) [dic3 objectForKey:@"userid"]; // App crash in this line
}

ユーザーID値を取得する方法は?

4

4 に答える 4

2

これが問題です:

 NSDictionary *dic4 = (NSDictionary *) [dic3 objectForKey:@"userid"];

次を使用する必要があります。

NSDictionary *dic4 = (NSDictionary *) [[dic3 objectAtIndex:0] objectForKey:@"userid"];
于 2013-01-28T07:27:15.573 に答える
0
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{

NSString *jsonStr = [[NSString alloc] initWithData:mutaebleData encoding:NSUTF8StringEncoding];
NSLog(@"JSonSTr : %@", jsonStr);

SBJSON *json = [[SBJSON alloc]init];

NSDictionary *dic = (NSDictionary *) [json objectWithString:jsonStr];
NSDictionary *dic1 = (NSDictionary *) [dic objectForKey:@"response"];
NSDictionary *dic2 = (NSDictionary *) [dic1 objectForKey:@"Success"];
NSArray *arr3 = (NSArray *) [dic1 objectForKey:@"items"];

NSString *str = [[arr objectAtIndex:0]objectForKey:@"userid"];
NSlog(@"userid ==%@",str);
// NSDictionary *dic4 = (NSDictionary *) [dic3 objectForKey:@"userid"]; // App crash in this line
 }
于 2013-01-28T07:30:40.110 に答える
0

SBJSON フレームワーク ファイルを追加できます。およびbyを解析することにより

NSDictionary *responseDict = [response JSONValue];
just parse it as normal dictionary.

NSString *userIDValue=[NSString stringWithFormat:@"%@",[[[[responseDict valueForKey:@"response"]valueForKey:@"items"]objectAtIndex:0]valueForKey:@"userid"]];
于 2013-01-28T07:48:22.920 に答える
-1
NSDictionary *dic = (NSDictionary *) [json objectWithString:jsonStr];
 NSDictionary *dic1 = (NSDictionary *) [dic objectForKey:@"response"];
 NSDictionary *dic2 = (NSDictionary *) [dic1 objectForKey:@"Success"];
 NSDictionary *dic3 = (NSDictionary *) [dic1 objectForKey:@"items"];
    
 for(NSDictionary *str in dic3)
 {
    NSLog(@"str:%@",[str valueForKey:@"userid"]);
 }
于 2013-01-28T08:00:45.017 に答える