我的iOS应用程序突然出现一个非常奇怪的问题。 我用来从服务器接收Jsons,并从中提取一些信息。除了一个用户帐户之外,一切工作都很完美:我只获得属性的第一个字符。只有从Json中提取的第一个字母
例如,如果JSON是这样的:
{
name : "Joey"
}
我解压的name属性,我得到的字符串 “J”。 我必须确切地说,它可以与所有其他用户帐户完美协同工作。
我在想一个编码问题?
预先感谢您的回答。
编辑:
这是我如何得到服务器的响应:
+ (void)getDataFromServ:(NSString *)urlServ withCompletionHandler:(void (^)(NSDictionary *dataDic))completion {
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlServ]];
[request setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler: ^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
return;
}
NSDictionary *serDataDic = nil;
NSError* parseError;
if (data) {
serDataDic = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
completion(serDataDic);
}
}];
[task resume];
}
这里是我如何处理响应:
...
[self getDataFromServ:urlServ withCompletionHandler:^(NSDictionary *dataDic) {
NSDictionary *response = [dataDic objectForKey:@"data"];
NSLog(@"Response : %@", response);
NSLog (@"Name : %@", [response objectForKey:@"name"]);
...
}
下面是相关的日志:
Response :
{
name = "Joey";
}
Name : J
编辑2:
另一件我刚才注意到的,当我提取一个属性并计算其长度时,长度比属性长。 例如,当我有一个包含15个字符的属性时,计算的长度为29,但属性仍然只出现一个字符。
编辑3:
我测试别的东西:
for (NSInteger j = 0; j < displayNameStr.length; j++) {
NSLog(@"displayname : %@, j : %d", [nameExtracted substringFromIndex:j], j);
}
2015-04-07 11:25:34.778 myApp[434:131660] displayname : A
2015-04-07 11:25:34.778 myApp[434:131660] displayname :
2015-04-07 11:25:34.779 myApp[434:131660] displayname : l
2015-04-07 11:25:34.779 myApp[434:131660] displayname :
2015-04-07 11:25:34.779 myApp[434:131660] displayname : l
2015-04-07 11:25:34.780 myApp[434:131660] displayname :
2015-04-07 11:25:34.780 myApp[434:131660] displayname : a
2015-04-07 11:25:34.781 myApp[434:131660] displayname :
2015-04-07 11:25:34.781 myApp[434:131660] displayname : i
2015-04-07 11:25:34.781 myApp[434:131660] displayname :
2015-04-07 11:25:34.782 myApp[434:131660] displayname : n
2015-04-07 11:25:34.782 myApp[434:131660] displayname :
2015-04-07 11:25:34.783 myApp[434:131660] displayname : o
2015-04-07 11:25:34.784 myApp[434:131660] displayname :
2015-04-07 11:25:34.784 myApp[434:131660] displayname : u
2015-04-07 11:25:34.788 myApp[434:131660] displayname :
2015-04-07 11:25:34.788 myApp[434:131660] displayname : D
2015-04-07 11:25:34.789 myApp[434:131660] displayname : D
2015-04-07 11:25:34.789 myApp[434:131660] displayname :
2015-04-07 11:25:34.789 myApp[434:131660] displayname : u
2015-04-07 11:25:34.790 myApp[434:131660] displayname :
2015-04-07 11:25:34.790 myApp[434:131660] displayname : p
2015-04-07 11:25:34.790 myApp[434:131660] displayname :
2015-04-07 11:25:34.791 myApp[434:131660] displayname : r
2015-04-07 11:25:34.791 myApp[434:131660] displayname :
2015-04-07 11:25:34.792 myApp[434:131660] displayname : a
2015-04-07 11:25:34.792 myApp[434:131660] displayname :
2015-04-07 11:25:34.792 myApp[434:131660] displayname : -
2015-04-07 11:25:34.793 myApp[434:131660] displayname :
2015-04-07 11:25:34.793 myApp[434:131660] displayname : B
2015-04-07 11:25:34.794 myApp[434:131660] displayname :
2015-04-07 11:25:34.794 myApp[434:131660] displayname : e
2015-04-07 11:25:34.794 myApp[434:131660] displayname :
2015-04-07 11:25:34.795 myApp[434:131660] displayname : l
2015-04-07 11:25:34.795 myApp[434:131660] displayname :
2015-04-07 11:25:34.795 myApp[434:131660] displayname : l
2015-04-07 11:25:34.796 myApp[434:131660] displayname :
2015-04-07 11:25:34.796 myApp[434:131660] displayname : a
2015-04-07 11:25:34.798 myApp[434:131660] displayname :
2015-04-07 11:25:34.798 myApp[434:131660] displayname : n
2015-04-07 11:25:34.798 myApp[434:131660] displayname :
名称的属性是:Allainou Dupra-bellan
你能表现出一定的代码,好吗?你如何初始化字符串? –
这是不可能为我们提出一个解决方案,如果你不包括一些_real_代码/数据在你的问题 – Alladinian
无论乔伊编码的不同,或者一些治疗情况有关具有“somethign”不同的特定用户。但是除非你告诉我们从头到尾看起来如何,否则我们无法真正提供帮助。 :) –