Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios7 iOS 7:以串联方式使用NSDictionary反序列化后获取JSON响应_Ios7_Nsjsonserialization_Xcode5.1 - Fatal编程技术网

Ios7 iOS 7:以串联方式使用NSDictionary反序列化后获取JSON响应

Ios7 iOS 7:以串联方式使用NSDictionary反序列化后获取JSON响应,ios7,nsjsonserialization,xcode5.1,Ios7,Nsjsonserialization,Xcode5.1,从Web服务接收JSON响应后。我从Web服务得到了这个响应 {"d":"{\"Status\":0,\"Message\":\"Registered Successfully\",\"Token\":\"281fecff-2d44-4530-bc24-03558f1ebda1\",\"CurrentTimestamp\":\"23-09-2014 09:58:39 +05:30\",\"ValidUntilTimespan\":\"23-09-2014 09:58:39 +05:30\"}"}

从Web服务接收JSON响应后。我从Web服务得到了这个响应

{"d":"{\"Status\":0,\"Message\":\"Registered Successfully\",\"Token\":\"281fecff-2d44-4530-bc24-03558f1ebda1\",\"CurrentTimestamp\":\"23-09-2014 09:58:39 +05:30\",\"ValidUntilTimespan\":\"23-09-2014 09:58:39 +05:30\"}"}
我首先通过删除“d:”和“\”来反序列化这个字符串,使其对JSON有效 解析

NSString *responseData = [[NSString alloc]initWithData:receivedData encoding:NSUTF8StringEncoding];
responseData = [responseData stringByReplacingOccurrencesOfString:@" " withString:@""];
responseData = [responseData stringByReplacingOccurrencesOfString:@"\\" withString:@""];
responseData = [responseData stringByReplacingOccurrencesOfString:@"\"d\":" withString:@""];
responseData = [responseData substringToIndex:[responseData length] - 2];
responseData = [responseData substringWithRange:NSMakeRange(2, [responseData length]-2)];

NSLog(@"Reponse data %@",responseData);
NSData *jsonData = [responseData dataUsingEncoding:NSUTF8StringEncoding];
NSError *errorJson=nil;
NSDictionary *myDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&errorJson];
NSLog(@"Final %@",myDictionary);

NSString *valueMessage = [myDictionary objectForKey:KeyMessage];
NSString *valueStatus = [myDictionary objectForKey:KeyStatus];
NSString *valueCurrentTimestamp = [myDictionary objectForKey:KeyCurrentTimestamp];
NSString *valueToken = [myDictionary objectForKey:KeyToken];
NSString *valueValidUntillTimepstamp = [myDictionary objectForKey:KeyValidUntillTimepstamp];
    //values
NSLog(@"Message = %@",valueMessage);
NSLog(@"Status = %@",valueStatus);
NSLog(@"currenttimestamp= %@",valueCurrentTimestamp);
NSLog(@"token= %@",valueToken);
NSLog(@"validuntiltimespan= %@",valueValidUntillTimepstamp);
这是我的日志结果:

014-09-23 10:03:13.885 Sbits_Journal[1015:60b] Response data   {"Status":0,"Message":"RegisteredSuccessfully","Token":"281fecff-2d44-4530-bc24-0   3558f1ebda1","CurrentTimestamp":"23-09-201409:58:39+05:30","ValidUntilTimespan":"23-09-  201409:58:39+05:30"}
2014-09-23 10:03:13.886 Sbits_Journal[1015:60b] Final {
CurrentTimestamp = "23-09-201409:58:39+05:30";
Message = RegisteredSuccessfully;
Status = 0;
Token = "281fecff-2d44-4530-bc24-03558f1ebda1";
ValidUntilTimespan = "23-09-201409:58:39+05:30";
}
但我得到的字符串响应是以“RegisteredSuccessfully”这样的方式串联的 但我只想获取这个字符串并显示警报,因为获取这样的字符串时,我无法在警报中显示“注册成功”。 这是我解析的正确方法还是有其他反序列化方法?
提前谢谢。

我在逐行调试后解决了这个问题

responseData = [responseData stringByReplacingOccurrencesOfString:@" " withString:@""];
由于这行空间被连接在一起,所以我只需在行的上方添加注释,然后再次运行。 我知道这是一个很小的问题,但可能它可以帮助别人,所以我回答了自己的问题