我是从服务器推送通知中获取的,这是NSDictionary格式的。
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler {
NSLog(@"Recieved remote notification %@", userInfo);
}
{
aps = {
alert = "{\n \"GCM\":{\n \"data\":{\n \"notificationType\":\"order\",\n \"oid\":\"CRN14333313\",\n \"c\":\"allocated\",\n \"f\":\"253.633333333333\" }\n }\n }";
};
}
我正在尝试将其转换为没有任何'\'或'\ n'的普通NSDictionary。我怎么做 ?
此NSDictionary格式的预期结果
{
aps = {
alert = "{
"GCM"={
"data"={
"notificationType"="ons",
"oid"="N14333313",
"c"="allocated",
"f"="253.633333333333",
}
}
}";
};
}
最佳答案
尝试这个,
NSError *jsonError;
NSData *objectData = [@"{\n \"GCM\":{\n \"data\":{\n \"notificationType\":\"order\",\n \"oid\":\"CRN14333313\",\n \"c\":\"allocated\",\n \"f\":\"253.633333333333\" }\n }\n }" dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:objectData
options:NSJSONReadingMutableContainers
error:&jsonError];
NSLog(@"dictionary is : %@",json);
我已经按原样保留您的字符串。您正在获取json字符串作为响应,因此您需要像这样将其转换为json对象。希望这能解决您的问题。 :)
关于ios - 无法在iOS中解析推送通知json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36548544/