【发布时间】:2015-02-05 13:44:34
【问题描述】:
您好,我是 Objective C 的新手,在此先感谢您的帮助。
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
{
NSLog(@"Notification Received: %@", userInfo);
NSString *NSSMessage = [NSString stringWithFormat:@"%@", userInfo];
NotificationMessageHandler *obj = [[NotificationMessageHandler alloc] init];
[obj handleNotificationMessage: NSSMessage]; // NSSmessage is a string to convert into JSON
}
我在 NSSMessage 中作为 NSString 关注
{
aps = {
alert = "\"Status\":\"Confirm\",\"Location\":\"\",\"Type\":\"Telephone Consultation\",\"Date\":\"2015-01-05\",\"Time\":\"19:03\",\"RescheduleDate\":\"\"";
badge = 1;
sound = "beep.wav";
};
}
在handleNotificationMessage 中,正在将NSString 转换为JSON 格式
- (void) handleNotificationMessage : (NSString *) NSSParam
{
if(NSSParam != nil && NSSParam != Nil)
{
// Parse the string
NSLog(@"NSS Message Param %@", NSSParam);
NSSParam = [NSSParam stringByReplacingOccurrencesOfString:@" "
withString:@""];
NSSParam = [NSSParam stringByReplacingOccurrencesOfString:@"\n"
withString:@""];
NSSParam = [NSSParam stringByReplacingOccurrencesOfString:@"aps="
withString:@"\"aps\":"];
NSSParam = [NSSParam stringByReplacingOccurrencesOfString:@"alert=\""
withString:@"\"alert\":{"];
NSSParam = [NSSParam stringByReplacingOccurrencesOfString:@"\"\";"
withString:@"\"},"];
NSSParam = [NSSParam stringByReplacingOccurrencesOfString:@"badge="
withString:@"\"badge\":"];
NSSParam = [NSSParam stringByReplacingOccurrencesOfString:@"sound="
withString:@"\"sound\":"];
NSSParam = [NSSParam stringByReplacingOccurrencesOfString:@"}}\""
withString:@"}}"];
NSSParam = [NSSParam stringByReplacingOccurrencesOfString:@";"
withString:@","];
NSSParam = [NSSParam stringByReplacingOccurrencesOfString:@",},}"
withString:@"}}"];
NSLog(@"NSS Message Param After Parsing %@", NSSParam);
NSData *data = [NSSParam dataUsingEncoding:NSUTF8StringEncoding];
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; // Here json is null
}
}
解析后我有一个如下的JSON
{"aps":{"alert":{\"Status\":\"Confirm\",\"Location\":\"\",\"Type\":\"TelephoneConsultation\",\"Date\":\"2015-01-05\",\"Time\":\"20:15\",\"RescheduleDate\":\"\"},"badge":1,"sound":"beep.wav"}}
我使用以下代码将 NSString 转换为 JSON
NSData *data = [NSSParam dataUsingEncoding:NSUTF8StringEncoding];
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; // Here json is null
这里 json 对象显示为 null 但 NSData 有对象。 那么,如何在目标 c 中将 NSString 转换为 NSDictionary? 请帮忙!
【问题讨论】:
-
1.第一个代码 sn-p 不是 NSString。 2. 你是如何“解析”为 JSON 的? 3. 你想做什么?请澄清您的问题,这很难理解。
-
我已经编辑了我的问题
-
不要将 nil 传递给错误,它可能包含您需要查看发生了什么的信息。
标签: ios objective-c json