ios - 无法在iOS中解析推送通知json?

标签 ios objective-c json nsdictionary

我是从服务器推送通知中获取的,这是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/

相关文章:

ios - 从应用程序委托(delegate)设置标签栏角标(Badge)

ios - 我有很多格式,如 ####-##-##、(###)-###-####,我想将文本字段的值更改为给定格式,如何实现。?

json - 组的 Firebase 数据库规则

ios - Text大于Height时如何增加UITextView的高度

ios - 如何对不同的 ServiceProtocol 使用多线程操作 - Swift

iOS7 UIRefreshControl 更改 contentInset

ios - TableView 单元格中的 UIButton 问题

json - 我如何修改我的 jQuery ajax 响应,以通过返回 JavaScript 对 JSON 执行与当前相同的操作?

mysql - 在 MYSQL 中将字段行文本复制为 JSON

ios - 在 Swift 4 中 touchesBegan 时重复功能