0

私はiosの初心者で、アクティビティの1つです。これは私のnsstringであり、この文字列から「LocationId」を取得したいのですが、問題があります.....この文字列を配列に追加してから、LocationIdを取得しようとしていますしかし、私にもエラーがあります....

Nsstring *Str={"UserName":"ankitdemo","UserId":"08f11980-9920-4127-8fe7-78e1c40f6002","RoleName":"Doctor","RoleId":"87b4193c-1252-4505-a81b-2b49b8db57f3","FirstName":"Ankit","MiddleName":"","LastName":"Gupta","LocationId":"5f15648f-12ef-4534-a145-4044bc7c742e"}


Nsstring  *LocationId=[NSString stringWithFormat:@"%@",[Str valueForKey:@"LocationId"]];

また

 NSMutableArray *location =[[NSMutableArray alloc]init];
[location addObject:self.WebService.ptr];
 NSLog(@"location id is %@",location);

LocationId=[NSString stringWithFormat:@"%@",[[location objectAtIndex:0]valueForKey:@"LocationId"]];
NSLog(@"location id is %@",LocationId);

しかし、私はエラーがあります....

ERROR
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason:  '[<__NSCFString 0x881d6d0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key LocationId.'
Solve this problem.......
4

4 に答える 4

3

このようにしてください

JSONパーサーを使用する必要があります...

 NSDictionary *location = [NSJSONSerialization JSONObjectWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding] 
                                                 options:NSJSONReadingMutableContainers
                                                   error: &e];
 NSLog(@"location id is %@",location);

LocationId=[NSString stringWithFormat:@"%@",[[location objectAtIndex:0]valueForKey:@"LocationId"]];
NSLog(@"location id is %@",LocationId);
于 2013-07-04T08:21:25.320 に答える
2

あなたが提供したコードには多くの問題があり、正しくコピーして貼り付けられているとは思えません。たとえばNsstring、コンパイルされません。

ただし、大まかに言うと、JSON 辞書などから文字列を作成しましたが、構文が正しくありません。また、エラーの原因である NSString で定義されていないプロパティの値を取得しようとしています。

あなたはこのようなものを探しています:

NSDictionary *dictionary = @{ @"UserName" : @"ankitdemo",
                              @"UserId" : @"08f11980-9920-4127-8fe7-78e1c40f6002",
                              @"RoleName" : @"Doctor",@
                              @"RoleId" : @"87b4193c-1252-4505-a81b-2b49b8db57f3",
                              @"FirstName" : @"Ankit",
                              @"MiddleName" :@"",
                              @"LastName" : @"Gupta",
                              @"LocationId" : @"5f15648f-12ef-4534-a145-4044bc7c742e" };

NSString *locationId = dictionary[@"LocationId"];
于 2013-07-04T08:22:15.513 に答える
0

あなたが提供したコードはコンパイルされませんが、次のように JSON を取得したと思いますNSString

NSError *e;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding] 
                                                     options:NSJSONReadingMutableContainers
                                                       error: &e];

if (!json)
    NSLog(@"Error: %@",e);
else 
    NSString *locationID = [json objectForKey:@"LocationId"];
于 2013-07-04T08:19:54.530 に答える
0

もちろん、NSUnknownKeyException が発生します。にはアクセサNSStringがありません。LocationId

JSON を解析する場合は、NSJSONSerializationなどの JSON パーサーを使用します。

ああ、valueForKey:あなたが意味するときは使わないでくださいobjectForKey:

于 2013-07-04T08:21:16.377 に答える